Verwenden von Ausdrücken zum Erstellen von Objekten und Aufrufen von Objektmethoden
Zum Erstellen von Objekten und Aufrufen von Methoden sind möglicherweise Ausdrücke erforderlich.
Erstellen von Objekten
Um eine Variable zu erstellen, die über einen Typ verfügt, der eine .NET-Klasse ist, erstellen Sie ein -Objekt in der Expression-Form . Die Eigenschaften der .NET-Klassenvariable umfassen einen Konstruktor. Wenn Sie den Standardkonstruktor verwenden, deklarieren Sie die Variable einfach direkt wie jede andere Variable (z. B. vom Typ "bool" oder "int").
Wenn Sie einen Konstruktor verwenden, der Parameter akzeptiert, verwenden Sie die Schlüsselwort (keyword) new, gefolgt von der Objektklasse und allen Parametern in Klammern:
new MyClass(myParam1, myParam2)
Achtung
Die Eigenschaft Standardkonstruktor verwenden wird möglicherweise nicht für einige Objekte angezeigt, die tatsächlich über Konstruktoren verfügen. In diesem Fall wird der Standardkonstruktor verwendet. Wenn Sie versuchen, einen anderen Konstruktor zu verwenden, wird ein Fehler ausgegeben.
Aufrufen von Methoden
Wenn Sie eine Methode auf einem .NET-Klassenobjekt aufrufen möchten, fügen Sie dem Objektverweis einen Punkt und den Namen der Methode hinzu, gefolgt von beliebigen Parametern in Klammern:
MyObject.MyMethod (param1)
Übergeben und Verwenden von Nachrichten als Parameter
Um beim Aufruf einer Methode auf einer .NET-Klasse eine Nachricht als Parameter zu übergeben, fügen Sie zunächst einen Verweis zu Microsoft.XLANGs.BaseTypes.dll in dem Projekt hinzu, das die Klasse definiert. Anschließend verwenden Sie den Typ XLANGMessage in der Methodensignatur.
Mit Verweisen auf den mehrteiligen Nachrichtentyp können Sie auf die verschiedenen Nachrichtenteile zugreifen, indem Sie den Typ XLANGPart verwenden:
MyMethod(XLANGMessage myMsg)
{
XLANGPart myPart = myMsg["Part1"];
XmlDocument xmlDoc = (XmlDocument) myPart.RetrieveAs(typeof(XmlDocument));
}
Im Aufruf selbst geben Sie einfach wie bei einem Parameter den Namen der Nachricht an:
MyObject.MyMethod(myMessage)
Sie können auch einen Nachrichtenteil als Typ XLANGPart übergeben.
.NET-Memberaufruf
Sie können auf öffentliche Members zugreifen. Der direkte Zugriff auf Members eines Nachrichtenteils ist jedoch nicht möglich. Hierfür muss dieses als gekennzeichnetes Feld höher gestuft sein.
Aufruf einer COM/COM+-Komponente
XLANGs generiert C#-Code. Alle benutzerdeklarierten XLANGs-Variablen werden als C#-Variablen generiert. Außer bei atomarischen Transaktionen gibt es kein besonderes Verhalten. Wenn eine serviced-Komponente (d. h. eine instance einer Klasse, die System.EnterpriseServices.ServicedComponent implementiert) in einem atomaren Bereich deklariert wird, generiert und verwendet XLANGs nur dann eine echte DTC COM+-Transaktion.
Wenn die Variable als ein L-Wert im atomarischen Bereich bezeichnet (also hineingeschrieben) wird, aber in einem äußeren Bereich deklariert wird, wird die Variable geklont, um Rollback zu unterstützen. Ein Objekt (z. B. ein XmlDocument) kann jedoch innerhalb eines .NET-Funktionsaufrufs geändert werden, wenn es als In-Parameter übergeben wird, sodass XLANGs nicht erkennen, dass das Objekt in geschrieben wird, und es wird kein ordnungsgemäßes Rollback ausgeführt. Sie können dieses Problem umgehen, indem Sie solche Objekte als ref-Parameter übergeben.
Entscheidend ist, dass sich Komponenten auf die gleiche Weise verhalten sollten wie in anderen C#-Programmen.