InstanceContext::GetServiceInstance Method (Message^)
Returns the instance of the service for the instance context in response to an incoming message.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Parameters
- message
-
Type:
System.ServiceModel.Channels::Message^
The incoming message that triggered the creation of a service object.
| Exception | Condition |
|---|---|
| InvalidOperationException | The service instance is in a created or opening state or is not initialized. |
| CommunicationObjectAbortedException | The service instance is aborted. |
| ObjectDisposedException | The service instance has been closed already and cannot be modified in these states. |
| CommunicationObjectFaultedException | The service instance is faulted and cannot be modified in these states. |
The general idea is that you only create an instance of the service when a message directed at it arrives, by calling Open; then if no message arrives, no InstanceContext is created and no service object is created, and so resources are not deployed until actually required.
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); }
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 3.0