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 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.