InstanceContext.GetServiceInstance Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Instanz des Diensts zurück.
Überlädt
GetServiceInstance() |
Gibt die Instanz des Diensts für den Instanzkontext zurück. |
GetServiceInstance(Message) |
Gibt die Instanz des Diensts für den Instanzkontext als Antwort auf eine eingehende Nachricht zurück. |
GetServiceInstance()
Gibt die Instanz des Diensts für den Instanzkontext zurück.
public:
System::Object ^ GetServiceInstance();
public object GetServiceInstance ();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object
Gibt zurück
Das Objekt, das die Dienstinstanz darstellt.
Ausnahmen
Die Dienstinstanz befindet sich im Erstellungs- oder Öffnungszustand oder ist nicht initialisiert.
Die Dienstinstanz wird abgebrochen.
Die Dienstinstanz wurde bereits geschlossen und kann in diesen Zuständen nicht geändert werden.
Die Dienstinstanz ist fehlerhaft und kann in diesen Zuständen nicht geändert werden.
Beispiele
Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
serviceHost.Open();
OperationContext operationContext = OperationContext.Current;
InstanceContext instanceContext = operationContext.InstanceContext;
CalculatorService service = (CalculatorService) instanceContext.GetServiceInstance();
}
Gilt für
GetServiceInstance(Message)
Gibt die Instanz des Diensts für den Instanzkontext als Antwort auf eine eingehende Nachricht zurück.
public:
System::Object ^ GetServiceInstance(System::ServiceModel::Channels::Message ^ message);
public object GetServiceInstance (System.ServiceModel.Channels.Message message);
member this.GetServiceInstance : System.ServiceModel.Channels.Message -> obj
Public Function GetServiceInstance (message As Message) As Object
Parameter
- message
- Message
Die eingehende Nachricht, die die Erstellung eines Dienstobjekts ausgelöst hat.
Gibt zurück
Das Objekt, das die Dienstinstanz darstellt.
Ausnahmen
Die Dienstinstanz befindet sich im Erstellungs- oder Öffnungszustand oder ist nicht initialisiert.
Die Dienstinstanz wird abgebrochen.
Die Dienstinstanz wurde bereits geschlossen und kann in diesen Zuständen nicht geändert werden.
Die Dienstinstanz ist fehlerhaft und kann in diesen Zuständen nicht geändert werden.
Beispiele
Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
serviceHost.Open();
OperationContext operationContext = OperationContext.Current;
InstanceContext instanceContext = operationContext.InstanceContext;
CalculatorService service = (CalculatorService)instanceContext.GetServiceInstance(msg);
}
Hinweise
Die Idee ist, dass Sie durch Aufrufen von Open nur eine Instanz des Diensts erstellen, wenn eine an ihn gerichtete Nachricht eintrifft; wenn keine Nachricht eintrifft, wird kein InstanceContext und kein Dienstobjekt erstellt, sodass Ressourcen nur bereitgestellt werden, wenn dies erforderlich ist.