InstanceContext.GetServiceInstance Metodo

Definizione

Restituisce l'istanza del servizio.

Overload

Nome Descrizione
GetServiceInstance()

Restituisce l'istanza del servizio per il contesto dell'istanza.

GetServiceInstance(Message)

Restituisce l'istanza del servizio per il contesto dell'istanza in risposta a un messaggio in arrivo.

GetServiceInstance()

Restituisce l'istanza del servizio per il contesto dell'istanza.

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

Valori restituiti

Oggetto che rappresenta l'istanza del servizio.

Eccezioni

L'istanza del servizio è in uno stato creato o aperto o non viene inizializzata.

L'istanza del servizio viene interrotta.

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

L'istanza del servizio è difettosa 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)

Restituisce l'istanza del servizio per il contesto dell'istanza in risposta a un messaggio in arrivo.

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 arrivo che ha attivato la creazione di un oggetto servizio.

Valori restituiti

Oggetto che rappresenta l'istanza del servizio.

Eccezioni

L'istanza del servizio è in uno stato creato o aperto o non viene inizializzata.

L'istanza del servizio viene interrotta.

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

L'istanza del servizio è difettosa 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 è che si crea un'istanza del servizio solo quando arriva un messaggio diretto, chiamando Open. Se non arriva alcun messaggio, non InstanceContext viene creato alcun oggetto servizio e quindi le risorse non vengono distribuite fino a quando non sono effettivamente necessarie.

Si applica a