Altova UModel 2024

A continuación ofrecemos algunos consejos para programar con JScript que le ayudarán a la hora de desarrollar un proyecto de scripting en el Editor de scripts de UModel.

 

Parámetros out

Los parámetros out de los métodos de NET Framework requieren variables especiales en JScript. Por ejemplo:

 

var dictionary = CLR.Create("System.Collections.Generic.Dictionary<System.String,System.String>");
dictionary.Add("1", "A");
dictionary.Add("2", "B");
 
// use el método de JScript para acceder a los parámetros out
var strOut = new Array(1);
if ( dictionary.TryGetValue("1", strOut) ) // TryGetValue establece el parámetro out
 alert( strOut[0] ); // use out parameter

 

Números enteros como argumentos

Los métodos .NET que requieren números enteros como argumentos no se deben llamar directamente con los objetos numéricos de JScript, que son valores de puntos flotantes. Por ejemplo, en lugar de:

 

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

 

use:

 

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

 

Iterar colecciones .NET

Para iterar colecciones .NET se pueden usar el Enumerador de JScript y el iterador .NET. Por ejemplo:
 

// iterar con el iterador de JScript
var itr = new Enumerator( coll );
for ( ; !itr.atEnd(); itr.moveNext() )
 alert( itr.item() );
 
// iterar con el iterador .NET
var itrNET = coll.GetEnumerator();
while( itrNET.MoveNext() )
 alert( itrNET.Current );

 

Plantillas .NET

Las plantillas .NET se pueden instanciar así:

 

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

 

o así

 

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

 

Valores .NET de enumeración

Para acceder a los valores .NET de enumeración puede usar:

 

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

 

Literales de enumeración

Para acceder a los literales de enumeración de la API de UModel (no necesita conocer su valor numérico) puede usar:

 

objExportXMIFileDlg.XMIType = eXMI21ForUML23;

© 2017-2023 Altova GmbH