InstanceContext.GetServiceInstance 메서드

정의

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

오버로드

Name Description
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)

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

적용 대상