次の方法で共有


InstanceContext.GetServiceInstance メソッド

定義

サービスのインスタンスを返します。

オーバーロード

GetServiceInstance()

インスタンス コンテキストのサービスのインスタンスを返します。

GetServiceInstance(Message)

受信メッセージに応答して、インスタンス コンテキストのサービスのインスタンスを返します。

GetServiceInstance()

インスタンス コンテキストのサービスのインスタンスを返します。

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

戻り値

Object

サービス インスタンスを表すオブジェクト。

例外

サービス インスタンスが created または opening 状態であるか、または初期化されていません。

サービス インスタンスは中止されています。

サービス インスタンスは既に閉じています。この状態では変更できません。

サービス インスタンスは違反しているので、この状態では変更できません。

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

サービス インスタンスを表すオブジェクト。

例外

サービス インスタンスが created または opening 状態であるか、または初期化されていません。

サービス インスタンスは中止されています。

サービス インスタンスは既に閉じています。この状態では変更できません。

サービス インスタンスは違反しているので、この状態では変更できません。

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 とサービス オブジェクトは作成されません。したがって、リソースは、実際に必要になるまでは使用されません。

適用対象