Partager via


Utilisation d'expressions pour créer des objets et appeler des méthodes d'objet [BTS05]

Il pourra vous arriver de devoir utiliser des expressions pour créer des objets ou pour appeler des méthodes.

Création d'objets

Pour créer une variable qui a un type qui est une classe .NET, vous construisez un objet dans la forme Expression . Les propriétés de votre variable de classe .NET incluent un constructeur. Si vous utilisez le constructeur par défaut, vous déclarez simplement la variable directement comme vous le feriez avec n'importe quelle autre variable qui serait par exemple du type bool ou int.

Si vous utilisez un constructeur qui accepte des paramètres, vous utilisez le mot clé nouveau, suivi de la classe d’objet et de tous les paramètres entre parenthèses :

new MyClass(myParam1, myParam2)  

Attention

La propriété Use Default Constructor peut ne pas s’afficher pour certains objets qui ont, en fait, des constructeurs. Dans ce cas, le constructeur par défaut est utilisé automatiquement et une erreur est déclenchée si vous essayez d'utiliser un autre constructeur.

Appel des méthodes

Pour appeler une méthode sur un objet de classe .NET, vous ajoutez un point ainsi que le nom de la méthode à la référence de l'objet et les faites suivre des éventuels paramètres entre parenthèses :

MyObject.MyMethod (param1)  

Transmission et utilisation de messages en tant que paramètres

Pour transmettre un message en tant que paramètre à un appel de méthode sur une classe .NET, vous devez d'abord ajouter une référence à Microsoft.XLANGs.BaseTypes.dll dans le projet qui définit la classe, puis utiliser le type XLANGMessage dans la signature de méthode.

Référencer le type de message à parties multiples vous permet d'accéder aux différentes parties du message en utilisant le type XLANGPart :

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

Dans l'appel lui-même, il vous suffit de fournir le nom du message comme vous le feriez avec n'importe quel autre paramètre :

MyObject.MyMethod(myMessage)  

Vous pouvez également transmettre une partie de message en tant que type XLANGPart.

appel de membre .NET

Vous pouvez accéder aux membres publics sauf dans le cas d'un accès direct aux membres d'une partie de message. Pour accéder directement au membre d'une partie de message, il faut qu'il soit promu en tant que champ distinctif.

Appel de composant COM/COM+

XLANGs génère du code C#. Toutes les variables XLANGs déclarées par l'utilisateur sont générées en tant que variables C#. Il n'y a pas de comportement particulier, excepté en cas de transactions atomiques. Lorsqu’un composant pris en charge (c’est-à-dire un instance d’une classe qui implémente System.EnterpriseServices.ServicedComponent) est déclaré dans une étendue atomique, les XLANG génèrent et utilisent une transaction COM+ DTC réelle.

Si une variable est référencée en tant que L-value (c'est-à-dire qu'elle est écrite) dans l'étendue atomique, mais qu'elle est déclarée en tant qu'étendue externe, elle est clonée afin d'assurer la restauration. Toutefois, un objet (tel qu’un XmlDocument) peut être modifié à l’intérieur d’un appel de fonction .NET lorsqu’il est passé en tant que paramètre in. Par conséquent, les XLANG n’auront pas le fait que l’objet est en cours d’écriture et ne seront pas rétablis correctement. La solution dans ce cas consiste à envoyer ces objets en tant que paramètres ref.

Au final, les composants doivent se comporter de la même façon que dans d'autres programmes C#.

Voir aussi

À propos des propriétés de contexte de message BizTalk