Notas sobre programación

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Referencia del programador > Editor de scripts >

Notas sobre programación

Es necesario tener en cuenta todos estos puntos:

 

En Microsoft .NET Framework se puede acceder por defecto a todos los espacios de nombres y tipos de estos ensamblados .NET:

 

 System

 System.Data

 System.Design

 System.Drawing

 System.Windows.Forms

 System.XML

 

Al proyecto de scripting se pueden añadir más ensamblados con ayuda del menú contextual del panel Estructura del proyecto del Editor de scripts o en el código fuente de forma dinámica (en tiempo de ejecución) usando CLR.LoadAssembly.

 

 

Los parámetros out de los métodos de la API de XMLSpy exigen variables especiales en JScript. Ejemplos:

 

                 // usar el método JScript para acceder a los parámetros out

 var strError = new Array(1);

 var nErrorPos = new Array(1);

 var objBadData = new Array(1);

 bOK = objDoc.IsValid(strError,nErrorPos,objBadData);END

 

 

Los parámetros out de los métodos de .NET Framework exigen variables especiales en JScript. Ejemplos:

 

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

 dictionary.Add("1", "A");

 dictionary.Add("2", "B");

 

 // usar el método JScript para acceder a los parámetros out

 var strOut = new Array(1);

 if ( dictionary.TryGetValue("1", strOut) // TryGetValue establecerá el parámetro out

         alert( strOut[0] ); // usar el parámetro out

 

 

Los métodos de .NET que exigen argumentos enteros no se deberían invocar directamente con objetos Number de JScript que sean valores de punto flotante.

 

Por ejemplo, en lugar de

 

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

 

recomendamos usar

 

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

 

 

Para iterar en colecciones .NET puede usar el objeto Enumerator de JScript y el iterador .NET. Ejemplo:

 

 // iterar usando el iterador de JScript

 var itr = new Enumerator( coll );

 for ( ; !itr.atEnd(); itr.moveNext() )

         alert( itr.item() );

 

 // iterar usando el iterador .NET

 var itrNET = coll.GetEnumerator();

 while( itrNET.MoveNext() )

         alert( itrNET.Current );

 

 

Puede crear instancias de las plantillas .NET de esta forma:

 

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

 

o

 

CLR.Import( "System" );

CLR.Import( "System.Collections.Generic" );

var dictionary = CLR.Create( "Dictionary< String, Dictionary< String, String > >" );

 

 

Puede acceder a los valores de .NET Enum de esta forma:

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

 

 

Los literales de enumeración, tal y como se definen en las bibliotecas de tipos de Altova, ahora se pueden usar en lugar de valores numéricos.

 

 objExportXMIFileDlg.XMIType = eXMI21ForUML23;

 


© 2019 Altova GmbH