InstanceContext.GetServiceInstance Метод

Определение

Возвращает экземпляр службы.

Перегрузки

Имя Описание
GetServiceInstance()

Возвращает экземпляр службы для контекста экземпляра.

GetServiceInstance(Message)

Возвращает экземпляр службы для контекста экземпляра в ответ на входящее сообщение.

GetServiceInstance()

Возвращает экземпляр службы для контекста экземпляра.

public:
 System::Object ^ GetServiceInstance();
public object GetServiceInstance();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object

Возвращаемое значение

Объект, представляющий экземпляр службы.

Исключения

Экземпляр службы находится в созданном или открываемом состоянии или не инициализирован.

Экземпляр службы прерван.

Экземпляр службы уже закрыт и не может быть изменен в этих состояниях.

Экземпляр службы неисправен и не может быть изменен в этих состояниях.

Примеры

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

Применяется к

GetServiceInstance(Message)

Исходный код:
InstanceContext.cs
Исходный код:
InstanceContext.cs
Исходный код:
InstanceContext.cs

Возвращает экземпляр службы для контекста экземпляра в ответ на входящее сообщение.

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

Параметры

message
Message

Входящее сообщение, которое активировало создание объекта службы.

Возвращаемое значение

Объект, представляющий экземпляр службы.

Исключения

Экземпляр службы находится в созданном или открываемом состоянии или не инициализирован.

Экземпляр службы прерван.

Экземпляр службы уже закрыт и не может быть изменен в этих состояниях.

Экземпляр службы неисправен и не может быть изменен в этих состояниях.

Примеры

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

Комментарии

Общая идея заключается в том, что вы создаете экземпляр службы только при поступлении сообщения, направленного на него, вызывая Openвызов; если сообщение не поступает, не создается и не создается объект службы, поэтому ресурсы не развертываются до тех пор, InstanceContext пока фактически не требуются.

Применяется к