Compartir a través de


Cómo usar expresiones para crear objetos y llamar a métodos de objetos [BTS05]

Posiblemente, necesite 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 la clase .NET incluyen un constructor. Si utiliza el constructor predeterminado, bastará con que declare directamente la variable de forma similar a como lo haría con otra variable (como una variable 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 ese caso, se utilizará automáticamente el constructor predeterminado y se generará un error si se intenta usar otro constructor.

Invocar 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 y, a continuación, especifique los parámetros entre paréntesis:

MyObject.MyMethod (param1)  

Pasar y usar mensajes como parámetros

Para pasar un mensaje como un parámetro a una llamada de método en una clase .NET, agregue primero 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 de método.

Si hace referencia al tipo de mensaje de varias partes, podrá tener acceso 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, sólo tiene que proporcionar el nombre del mensaje, de forma similar a como lo haría con otro parámetro:

MyObject.MyMethod(myMessage)  

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

Llamada a miembros .NET

Puede obtener acceso a miembros públicos, excepto en el caso de acceso directo a miembros de una parte de mensaje. Para tener acceso directo a un miembro de una parte de mensaje, es necesario que se promocione como un campo distintivo.

Invocación del componente COM/COM+

XLANGs genera código C#. Todas las variables de XLANGs declaradas por el usuario se generan como variables C#. No hay un comportamiento especial excepto en el caso de las 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 y, a continuación, solo genera XLANG y usa una transacción COM+ de DTC real.

Cuando se hace referencia a una variable como valor L (es decir, escrito en) en el ámbito atómico, pero se declara en un ámbito externo, la variable se clona para ser compatible con reversión. Sin embargo, un objeto (como XmlDocument) se puede modificar dentro de una llamada de función de .NET cuando se pasa como parámetro y, por tanto, XLANG perderá que el objeto se está escribiendo en y no se revertirá correctamente. La solución en este caso es transferir tales objetos como parámetros ref.

El resultado es que los componentes deben comportarse como lo hacen en otros programas C#.

Consulte también

Propiedades de contexto de mensaje de BizTalk