IInstanceContextProvider Schnittstelle

Definition

Implementieren Sie dies, um die Erstellung oder Auswahl eines InstanceContext-Objekts mitzubestimmen, insbesondere, um freigegebene Sitzungen zu aktivieren.

public interface class IInstanceContextProvider
public interface IInstanceContextProvider
type IInstanceContextProvider = interface
Public Interface IInstanceContextProvider

Hinweise

Implementieren Sie die IInstanceContextProvider-Schnittstelle, um dem System das entsprechende System.ServiceModel.InstanceContext-Objekt bereitzustellen. In der Regel wird diese Schnittstelle implementiert, um freigegebene Sitzungen zu unterstützen, Dienstinstanzpooling zu aktivieren, die Lebensdauer von Dienstinstanzen zu steuern oder Clients Kontexte in Gruppen zuzuordnen.

Um zum Beispiel die Freigabe zu implementieren, fügen Sie einen benutzerdefinierten IInstanceContextProvider ein, um zu entscheiden, welche Sitzung oder welcher Aufruf eines Clients welchem InstanceContext-Objekt zugeordnet wird. Ein Beispiel, das die Gemeinsame Nutzung von Instanzkontexten veranschaulicht, finden Sie unter InstanceContextSharing.

Hinweis

Wenn ein in Windows Communication Foundation (WCF) eingefügt wird, wird die normale Eigenschaft, die die Erstellung von Objekten steuert (die -Eigenschaft), nicht mehr überprüft und hat IInstanceContextProvider InstanceContext keine Auswirkungen ServiceBehaviorAttribute.InstanceContextMode mehr.

Ein allgemeinerer Mechanismus, mit dem Sie InstanceContext-Objekte bei der Erstellung initialisieren können (zum Beispiel um benutzerdefinierte Erweiterungen an alle InstanceContext anzufügen), ist System.ServiceModel.Dispatcher.IInstanceContextInitializer.

Methoden

GetExistingInstanceContext(Message, IContextChannel)

Wird aufgerufen, wenn eine neue Nachricht empfangen wird.

InitializeInstanceContext(InstanceContext, Message, IContextChannel)

Wird aufgerufen, wenn null von der GetExistingInstanceContext(Message, IContextChannel)-Methode zurückgegeben wird.

IsIdle(InstanceContext)

Wird aufgerufen, wenn alle InstanceContext-Aktivitäten die Aktivierung der Implementierungen abgeschlossen haben, um zu verhindern, dass InstanceContext wiederverwendet wird.

NotifyIdle(InstanceContextIdleCallback, InstanceContext)

Wird aufgerufen, wenn die IsIdle(InstanceContext)-Methode false zurückgibt, damit Implementierungen einen Rückruf durchführen, um WCF zu benachrichtigen, dass das InstanceContext-Objekt geschlossen ist.

Gilt für