Freigeben über


InstanceContext.GetServiceInstance Methode

Definition

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

Object

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

Object

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.

Gilt für