Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Möglicherweise müssen Sie Ausdrücke verwenden, um Objekte zu erstellen oder Methoden aufzurufen.
Erstellen von Objekten
Um eine Variable zu erstellen, die einen Typ aufweist, der eine .NET-Klasse ist, erstellen Sie ein Objekt in der Ausdrucksform . Die Eigenschaften der .NET-Klassenvariablen enthalten einen Konstruktor. Wenn Sie den Standardkonstruktor verwenden, deklarieren Sie die Variable einfach direkt wie jede andere Variable, z. B. einen bool- oder int-Typ.
Wenn Sie einen Konstruktor verwenden, der Parameter verwendet, verwenden Sie das neue Schlüsselwort, gefolgt von der Objektklasse und allen Parametern in Klammern:
new MyClass(myParam1, myParam2)
Vorsicht
Die Eigenschaft "Default Constructor verwenden " wird für einige Objekte, die tatsächlich über Konstruktoren verfügen, möglicherweise nicht angezeigt. In diesem Fall wird der Standardkonstruktor automatisch verwendet, und es wird ein Fehler ausgelöst, wenn Sie versuchen, einen anderen Konstruktor zu verwenden.
Aufrufen von Methoden
Um eine Methode für ein .NET-Klassenobjekt aufzurufen, fügen Sie einen Punkt und den Namen der Methode an den Objektverweis an, gefolgt von Parametern in Klammern.
MyObject.MyMethod (param1)
Übergeben und Verwenden von Nachrichten als Parameter
Um eine Nachricht als Parameter an einen Methodenaufruf einer .NET-Klasse zu übergeben, fügen Sie zuerst einen Verweis auf Microsoft.XLANGs.BaseTypes.dll im Projekt hinzu, das die Klasse definiert, und verwenden Sie dann den Typ XLANGMessage in der Methodensignatur.
Durch Verweisen auf den mehrteiligen Nachrichtentyp können Sie mithilfe des Typs "XLANGPart" auf die verschiedenen Teile der Nachricht zugreifen:
MyMethod(XLANGMessage myMsg)
{
XLANGPart myPart = myMsg["Part1"];
XmlDocument xmlDoc = (XmlDocument) myPart.RetrieveAs(typeof(XmlDocument));
}
Im Aufruf selbst geben Sie einfach den Namen der Nachricht wie jeden anderen Parameter an:
MyObject.MyMethod(myMessage)
Sie können einen Nachrichtenteil auch als XLANGPart-Typ übergeben.
.NET-Member-Aufruf
Sie können auf öffentliche Mitglieder zugreifen, mit Ausnahme des direkten Zugriffs auf Mitglieder eines Nachrichtenteils. Um direkt auf ein Element eines Nachrichtenteils zuzugreifen, muss es als hervorgehobenes Feld (distinguished field) gekennzeichnet werden.
COM/COM+-Komponentenaufruf
XLANGs generiert C#-Code. Alle vom Benutzer deklarierten XLANGs-Variablen werden als C#-Variablen generiert. Es gibt kein besonderes Verhalten, außer im Falle von Atomtransaktionen. Wenn eine dienstfähige Komponente (d. h. eine Instanz einer Klasse, die System.EnterpriseServices.ServicedComponent implementiert) in einem atomischen Bereich deklariert wird, generiert und verwendet dann nur XLANGs eine echte DTC COM+-Transaktion.
Wenn auf eine Variable im atomaren Bereich als L-Wert (d. h. sie wird beschrieben) verwiesen wird, die Variable jedoch 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. Daher wird XLANGs übersehen, dass das Objekt geschrieben wird, und es wird kein ordnungsgemäßes Rollback ausgeführt. Die Problemumgehung in diesem Fall besteht darin, Objekte als ref-Parameter zu übergeben.
Die untere Linie besteht darin, dass sich Komponenten wie in anderen C#-Programmen verhalten sollten.