InstanceContext.GetServiceInstance InstanceContext.GetServiceInstance InstanceContext.GetServiceInstance InstanceContext.GetServiceInstance Method

정의

서비스의 인스턴스를 반환합니다.Returns the instance of the service.

오버로드

GetServiceInstance() GetServiceInstance() GetServiceInstance() GetServiceInstance()

인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.Returns the instance of the service for the instance context.

GetServiceInstance(Message) GetServiceInstance(Message) GetServiceInstance(Message)

들어오는 메시지에 대한 응답으로 인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.Returns the instance of the service for the instance context in response to an incoming message.

GetServiceInstance() GetServiceInstance() GetServiceInstance() GetServiceInstance()

인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.Returns the instance of the service for the instance context.

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

반환

서비스 인스턴스를 나타내는 개체입니다.The object that represents the service instance.

예외

서비스 인스턴스가 만듦 상태 또는 열린 상태이거나 초기화되지 않은 경우The service instance is in a created or opening state or is not initialized.

서비스 인스턴스가 이미 닫혀 있으며, 이러한 상태에서 수정할 수 없는 경우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.

예제

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) GetServiceInstance(Message) GetServiceInstance(Message)

들어오는 메시지에 대한 응답으로 인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.Returns the instance of the service for the instance context in response to an incoming message.

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

매개 변수

message
Message Message Message Message

서비스 개체를 만들도록 트리거한 들어오는 메시지입니다.The incoming message that triggered the creation of a service object.

반환

서비스 인스턴스를 나타내는 개체입니다.The object that represents the service instance.

예외

서비스 인스턴스가 만듦 상태 또는 열린 상태이거나 초기화되지 않은 경우The service instance is in a created or opening state or is not initialized.

서비스 인스턴스가 이미 닫혀 있으며, 이러한 상태에서 수정할 수 없는 경우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.

예제

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와 서비스 개체가 만들어지지 않으므로 리소스가 실제로 필요할 때까지 배포되지 않습니다.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.

적용 대상