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


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

The service instance is in a created or opening state or is not initialized.


The service instance is aborted.


The service instance has been closed already and cannot be modified in these states.


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))
    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
Available since 3.0
Return to top
© 2016 Microsoft