Verwenden von Aufrufkontext
Dieses Thema bezieht sich auf eine veraltete Technologie, die zum Zwecke der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten wird und nicht für die neue Entwicklung empfohlen wird. Verteilte Anwendungen sollten jetzt mit Windows Communication Foundation (WCF) entwickelt werden.
Durch den Aufrufkontext können ein Remoteclient und ein Remoteobjekt Informationen freigeben, ohne die Informationen explizit als Parameter oder Rückgabewert zu übergeben. Die CallContext-Klasse stellt ein Wörterbuch mit beliebig vielen Objekten bereit, die als serialisierbar markiert sind und die ILogicalThreadAffinative-Schnittstelle implementieren. Objekte werden CallContext durch Aufrufen von SetData hinzugefügt. Objekte werden aus CallContext durch Aufrufen von GetData abgerufen. Objekte können CallContext beim Ausführen der Anwendung jederzeit hinzugefügt werden.
Hinweis: |
---|
Der Bereich von CallContext wird nach Threads festgelegt. Es gibt ein separates CallContext-Objekt für jeden Thread, der in der Anwendung ausgeführt wird. |
Ein Beispiel, in dem die Verwendung des CallContext-Objekts dargestellt wird, finden Sie unter Remotingbeispiel: CallContext.
Bei einem Remoteaufruf wird das CallContext-Objekt in einer Nachricht (IMessage-Implementierung) als "__CallContext" übergeben. Nachrichtensenken können der "__CallContext"-Eigenschaft Objekte hinzufügen und Objekte aus der "__CallContext"-Eigenschaft abrufen, während sie die Nachrichtensenkenkette durchläuft.
Asynchrone Verarbeitung und CallContext
Die BeginInvoke-Methode übergibt CallContext an den Server. Wenn die EndInvoke-Methode aufgerufen wird, werden die in CallContext enthaltenen Daten auf den Thread zurückkopiert, der BeginInvoke aufgerufen hat.
Siehe auch
Konzepte
Weitere Ressourcen
CallContexts und direktes Remoting
Remoting für Fortgeschrittene