GetServiceInstance Method (Message)
Collapse the table of content
Expand the table of content

InstanceContext.GetServiceInstance Method (Message)

 

Returns the instance of the service for the instance context in response to an incoming message.

Namespace:   System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public object GetServiceInstance(
	Message message
)

Parameters

message
Type: System.ServiceModel.Channels.Message

The incoming message that triggered the creation of a service object.

Return Value

Type: System.Object

The object that represents the service instance.

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

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 3.0
Return to top
Show:
© 2016 Microsoft