Condividi tramite


Come usare espressioni per creare oggetti e chiamare metodi oggetto

Potrebbe essere necessario usare espressioni per creare oggetti o richiamare metodi.

Creazione di oggetti

Per creare una variabile con un tipo che è una classe .NET, creare un oggetto nella forma Expression . Le proprietà della variabile di classe .NET includono un costruttore. Se si usa il costruttore predefinito, è sufficiente dichiarare la variabile direttamente come qualsiasi altra variabile, ad esempio un tipo bool o int.

Se si usa un costruttore che accetta parametri, usare la parola chiave new, seguita dalla classe object e da eventuali parametri tra parentesi:

new MyClass(myParam1, myParam2)  

Attenzione

La proprietà Use Default Constructor potrebbe non essere visualizzata per alcuni oggetti che, in effetti, dispongono di costruttori. In questo caso, il costruttore predefinito verrà usato automaticamente e verrà generato un errore se si tenta di usare un costruttore diverso.

Chiamata di metodi

Per richiamare un metodo su un oggetto classe .NET, aggiungere un punto e il nome del metodo al riferimento all'oggetto, seguito da eventuali parametri tra parentesi:

MyObject.MyMethod (param1)  

Passaggio e uso di messaggi come parametri

Per passare un messaggio come parametro a una chiamata al metodo su una classe .NET, aggiungere prima un riferimento a Microsoft.XLANGs.BaseTypes.dll nel progetto che definisce la classe e quindi usare il tipo XLANGMessage nella firma del metodo.

Il riferimento al tipo di messaggio in più parti consente di accedere alle varie parti del messaggio usando il tipo XLANGPart:

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

Nella chiamata stessa si specifica semplicemente il nome del messaggio come si farebbe con qualsiasi altro parametro:

MyObject.MyMethod(myMessage)  

È anche possibile passare una parte del messaggio come tipo XLANGPart.

Chiamata ai membri .NET

È possibile accedere ai membri pubblici tranne nel caso di accesso diretto ai membri di una parte del messaggio. Per accedere direttamente a un membro di una parte del messaggio, è necessario alzarlo di livello come campo distinto.

Chiamata al componente COM/COM+

Le XLANG generano codice C#. Tutte le variabili XLANG dichiarate dall'utente vengono generate come variabili C#. Non esiste alcun comportamento speciale, tranne nel caso di transazioni atomiche. Quando un componente gestito (ovvero un'istanza di una classe che implementa System.EnterpriseServices.ServicedComponent) viene dichiarato in un ambito atomico, allora e solo allora XLANGs genera e utilizza una transazione DTC COM+ reale.

Se viene fatto riferimento a una variabile come valore L ( ovvero viene scritto in ) nell'ambito atomico, ma viene dichiarato in un ambito esterno, la variabile viene clonata per supportare il rollback. Tuttavia, un oggetto, come ad esempio XmlDocument, può essere modificato all'interno di una chiamata di funzione .NET quando viene passato come parametro di input. Di conseguenza, XLANG potrebbe non rilevare la modifica dell'oggetto, e il rollback potrebbe non essere eseguito correttamente. La soluzione alternativa in questo caso consiste nel passare oggetti come parametri di riferimento.

La linea finale è che i componenti devono comportarsi come in altri programmi C#.

Vedere anche

Informazioni sulle proprietà del contesto del messaggio BizTalk