다음을 통해 공유


InstanceContext.GetServiceInstance 메서드

정의

서비스의 인스턴스를 반환합니다.

오버로드

GetServiceInstance()

인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.

GetServiceInstance(Message)

들어오는 메시지에 대한 응답으로 인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.

GetServiceInstance()

인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.

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

반환

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)

들어오는 메시지에 대한 응답으로 인스턴스 컨텍스트의 서비스 인스턴스를 반환합니다.

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

서비스 개체를 만들도록 트리거한 들어오는 메시지입니다.

반환

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

설명

일반적인 개념은 메시지를 호출하여 Open서비스 인스턴스가 도착할 때만 서비스의 인스턴스를 만드는 것입니다. 메시지가 도착하지 않으면 생성되지 InstanceContext 않고 서비스 개체가 만들어지지 않으므로 실제로 필요할 때까지 리소스가 배포되지 않습니다.

적용 대상