Compartir a través de


Cómo usar expresiones para crear objetos y llamar a métodos de objeto

Es posible que tenga que usar expresiones para crear objetos o invocar métodos.

Creación de objetos

Para crear una variable que tenga un tipo que sea una clase .NET, cree un objeto en la forma Expresión . Las propiedades de la variable de clase de .NET incluyen un constructor. Si usa el constructor predeterminado, simplemente declara la variable directamente como lo haría con cualquier otra variable, como una de tipo bool o int.

Si usa un constructor que toma parámetros, use la palabra clave new, seguida de la clase de objeto y los parámetros entre paréntesis:

new MyClass(myParam1, myParam2)  

Precaución

Es posible que la propiedad Use Default Constructor no se muestre para algunos objetos que, de hecho, tienen constructores. En este caso, el constructor predeterminado se usará automáticamente y se generará un error si intenta usar un constructor diferente.

Invocación de métodos

Para invocar un método en un objeto de clase .NET, anexe un punto y el nombre del método a la referencia de objeto, seguido de los parámetros entre paréntesis:

MyObject.MyMethod (param1)  

Paso y uso de mensajes como parámetros

Para pasar un mensaje como parámetro a una llamada de método en una clase .NET, primero agregue una referencia a Microsoft.XLANGs.BaseTypes.dll en el proyecto que define la clase y, a continuación, use el tipo XLANGMessage en la firma del método.

Hacer referencia al tipo de mensaje de varias partes permite acceder a las distintas partes del mensaje mediante el tipo XLANGPart:

MyMethod(XLANGMessage myMsg)  
{  
XLANGPart myPart = myMsg["Part1"];  
XmlDocument xmlDoc = (XmlDocument) myPart.RetrieveAs(typeof(XmlDocument));  
}  

En la propia llamada, simplemente proporcione el nombre del mensaje como lo haría con cualquier otro parámetro:

MyObject.MyMethod(myMessage)  

También puede pasar una parte del mensaje como tipo XLANGPart.

Invocación de un miembro de .NET

Puede acceder a los miembros públicos, salvo cuando se trata del acceso directo a los miembros de una parte del mensaje. Para acceder directamente a un miembro de una parte del mensaje, debe promoverse como un campo distintivo.

Invocación de componentes COM/COM+

XLANG genera código de C#. Todas las variables XLANG declaradas por el usuario se generan como variables de C#. No hay ningún comportamiento especial excepto en el caso de transacciones atómicas. Cuando un componente con servicio (es decir, una instancia de una clase que implementa System.EnterpriseServices.ServicedComponent) se declara en un ámbito atómico, solo entonces XLANGs genera y utiliza una transacción COM+ de DTC real.

Si se hace referencia a una variable como un valor L (es decir, se escribe en) en el ámbito atómico, pero se declara en un ámbito externo, la variable se clona para admitir la reversión. Sin embargo, un objeto (como un XmlDocument) se puede modificar dentro de una llamada de función de .NET cuando se pasa como parámetro de entrada, y por lo tanto, XLANGs no detectarán que se está escribiendo en el objeto y no se revertirá correctamente. La solución alternativa en este caso consiste en pasar dichos objetos como parámetros de referencia.

La conclusión es que los componentes deben comportarse como lo hacen en otros programas de C#.

Véase también

Acerca de las propiedades del contexto de mensaje de BizTalk