InstanceContext.GetServiceInstance Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.