InstanceContext.GetServiceInstance Metodo

Definizione

Restituisce l'istanza di servizio.

Overload

GetServiceInstance()

Restituisce l'istanza di servizio del contesto dell'istanza.

GetServiceInstance(Message)

Restituisce l'istanza di servizio del contesto dell'istanza in risposta a un messaggio in ingresso.

GetServiceInstance()

Restituisce l'istanza di servizio del contesto dell'istanza.

public:
 System::Object ^ GetServiceInstance();
public object GetServiceInstance ();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object

Restituisce

Oggetto che rappresenta l'istanza di servizio.

Eccezioni

L'istanza di servizio non è stata inizializzata o presenta uno stato Created oppure Opening.

L'istanza di servizio è stata interrotta.

L'istanza di servizio è stata chiusa e non può essere modificata in questi stati.

L'istanza di servizio contiene errori e non può essere modificata in questi stati.

Esempio

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();
}

Si applica a

GetServiceInstance(Message)

Origine:
InstanceContext.cs
Origine:
InstanceContext.cs
Origine:
InstanceContext.cs

Restituisce l'istanza di servizio del contesto dell'istanza in risposta a un messaggio in ingresso.

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

Parametri

message
Message

Messaggio in ingresso che ha causato la creazione di un oggetto servizio.

Restituisce

Oggetto che rappresenta l'istanza di servizio.

Eccezioni

L'istanza di servizio non è stata inizializzata o presenta uno stato Created oppure Opening.

L'istanza di servizio è stata interrotta.

L'istanza di servizio è stata chiusa e non può essere modificata in questi stati.

L'istanza di servizio contiene errori e non può essere modificata in questi stati.

Esempio

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);
}

Commenti

L'idea generale è creare un'istanza di servizio tramite la chiamata al metodo Open solo quando il servizio riceve un messaggio in ingresso; di conseguenza, se non arriva alcun messaggio, non viene creato alcun contesto InstanceContext né alcun oggetto servizio. Ne consegue che la distribuzione delle risorse avviene solo quando effettivamente necessario.

Si applica a