Altova UModel 2024 Professional Edition

Im Folgenden finden Sie einige Tipps zum Programmieren in JScript, die sich bei der Erstellung eines Skripting-Projekts im UModel Skript-Editor als nützlich erweisen könnten.

 

Out-Parameter

Für Out-Parameter von Methoden des .NET Framework werden in JScript spezielle Variablen benötigt, z.B:

 

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

 

Ganzzahl-Argumente

.NET-Methoden, für die Ganzzahl-Argumente benötigt werden, sollten nicht direkt mit JScript-Zahlenobjekten, die Gleitkommawerte enthalten, aufgerufen werden. Verwenden Sie z.B. anstelle von:

 

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

 

Folgendes:

 

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

 

Iterieren über .NET Collections

Für die Iteration über .NET Collections können sowohl der JScript Enumerator als auch .NET-Iterierungstechnologien verwendet werden, z.B:

 

// 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 Templates

.NET Templates können, wie unten gezeigt, instantiiert werden:

 

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

 

oder

 

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

 

.NET-Enumerationswerte

.NET-Enumerationswerte werden, wie unten gezeigt, aufgerufen:

 

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

 

Enumerationsliterale

Die Enumerationsliterale aus der UModel API können, wie unten gezeigt, aufgerufen werden (ihr numerischer Wert muss nicht bekannt sein).

 

objExportXMIFileDlg.XMIType = eXMI21ForUML23;

© 2017-2023 Altova GmbH