InstanceContextMode InstanceContextMode InstanceContextMode InstanceContextMode Enum

定義

入力メッセージに含まれている呼び出しを処理するために使用できるサービス インスタンスの数を指定します。Specifies the number of service instances available for handling calls that are contained in incoming messages.

public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode = 
Public Enum InstanceContextMode
継承
InstanceContextModeInstanceContextModeInstanceContextModeInstanceContextMode

フィールド

PerCall PerCall PerCall PerCall 1

それぞれの呼び出しの前に新しい InstanceContext オブジェクトを作成し、その後、そのオブジェクトをリサイクルします。A new InstanceContext object is created prior to and recycled subsequent to each call.

PerSession PerSession PerSession PerSession 0

セッションごとに新しい InstanceContext オブジェクトを作成します。A new InstanceContext object is created for each session. チャネルがセッションを作成しない場合、この値は、PerCall であるかのように動作します。If the channel does not create a session this value behaves as if it were PerCall.

Single Single Single Single 2

すべての着信呼び出しに対して 1 つの InstanceContext オブジェクトだけを使用し、その後、そのオブジェクトをリサイクルしません。Only one InstanceContext object is used for all incoming calls and is not recycled subsequent to the calls. サービス オブジェクトが存在しない場合は、1 つ作成されます。If a service object does not exist, one is created.

サービス クラスに対して InstanceContextMode を設定する方法を次のコード例に示します。The following code illustrates how to set the InstanceContextMode for a service class:

// Service class which implements the service contract.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        return n1 + n2;
    }

    public double Subtract(double n1, double n2)
    {
        return n1 - n2;
    }

    public double Multiply(double n1, double n2)
    {
        return n1 * n2;
    }

    public double Divide(double n1, double n2)
    {
        return n1 / n2;
    }
}
' Service class which implements the service contract.
Public Class CalculatorService
Implements ICalculator

    Public Function Add(n1 As Double, n2 As Double) As Double Implements ICalculator.Add
        Return n1 + n2
    End Function

    Public Function Subtract(n1 As Double, n2 As Double) As Double Implements ICalculator.Subtract
        Return n1 - n2
    End Function

    Public Function Multiply(n1 As Double, n2 As Double) As Double Implements ICalculator.Multiply
        Return n1 * n2
    End Function

    Public Function Divide(n1 As Double, n2 As Double) As Double Implements ICalculator.Divide
        Return n1 / n2
    End Function

End Class

注釈

クラスSystem.ServiceModel.InstanceContextは、チャネルとユーザー定義のサービスオブジェクト間の関連付けを管理します。The System.ServiceModel.InstanceContext class manages the association between the channel and the user-defined service objects. InstanceContextMode プロパティを持つ ServiceBehaviorAttribute.InstanceContextMode 列挙型を使用して、InstanceContext オブジェクトの有効期間を指定します。Use the InstanceContextMode enumeration with the ServiceBehaviorAttribute.InstanceContextMode property to specify the lifetime of the InstanceContext object. Windows Communication Foundation (WCF) では、すべてInstanceContextの呼び出しに対して新しいオブジェクトを作成するか、 InstanceContextすべてのセッションを使用するか、またはオブジェクトが1つのサービスオブジェクトにバインドされるように指定することができます。Windows Communication Foundation (WCF) can create a new InstanceContext object for every call, every session, or specify that the InstanceContext object is bound to a single service object. 実際の例については、「インスタンス化」を参照してください。For a working example, see Instancing.

Single 値は、サービスの有効期間の間、単一の InstanceContext オブジェクトを使用する必要があることを指定します。The Single value specifies that a single InstanceContext object should be used for the lifetime of the service. Single値にはいくつかの注意事項が関連付けられています。Several caveats are associated with the Single value:

適用対象

こちらもご覧ください