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 は作成されず、サービス オブジェクトも作成されないため、リソースは実際に必要になるまでデプロイされません。

適用対象