Altova XMLSpy 2023 Enterprise Edition

以下是在XMLSpy脚本编辑器中开发脚本项目时一些有用的JScript编程技巧。

 

Out参数

.NET Framework方法的Out参数需要JScript中的特殊变量。例如:

 

var dictionary = CLR.Create("System.Collections.Generic.Dictionary<System.String,System.String>");
dictionary.Add("1", "A");
dictionary.Add("2", "B");
 
// use JScript method to access out-parameters
var strOut = new Array(1);
if ( dictionary.TryGetValue("1", strOut) ) // TryGetValue will set the out parameter
 alert( strOut[0] ); // use out parameter

 

整数参数

需要整数参数的.NET方法不应该直接用JScript的作为浮点值的数字对象来调用。例如,与其使用:

 

var objCustomColor = CLR.Static("System.Drawing.Color").FromArgb(128,128,128);

 

不如使用:

 

var objCustomColor = CLR.Static("System.Drawing.Color").FromArgb(Math.floor(128),Math.floor(128),Math.floor(128));

 

迭代.NET集合

要迭代.NET集合,可以使用JScript枚举器和.NET迭代器技术,例如:

 

// iterate using the JScript iterator
var itr = new Enumerator( coll );
for ( ; !itr.atEnd(); itr.moveNext() )
 alert( itr.item() );
 
// iterate using the .NET iterator
var itrNET = coll.GetEnumerator();
while( itrNET.MoveNext() )
 alert( itrNET.Current );

 

.NET模板

.NET模板可以被实例化,如下所示:

 

var coll = CLR.Create( "System.Collections.Generic.List<System.String>" );

 

 

CLR.Import( "System" );
CLR.Import( "System.Collections.Generic" );
var dictionary = CLR.Create( "Dictionary<String,Dictionary<String,String>>" );

 

.NET枚举值

.NET枚举值可以按如下方式访问:

 

var enumValStretch = CLR.Static( "System.Windows.Forms.ImageLayout" ).Stretch;

 

枚举文本

XMLSpy API中的枚举文本可以按如下方式访问(无需知道其数值)。

 

objExportXMIFileDlg.XMIType = eXMI21ForUML23;

© 2017-2023 Altova GmbH