InstanceContextMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
入力メッセージに含まれている呼び出しを処理するために使用できるサービス インスタンスの数を指定します。
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- 継承
フィールド
PerCall | 1 | それぞれの呼び出しの前に新しい InstanceContext オブジェクトを作成し、その後、そのオブジェクトをリサイクルします。 |
PerSession | 0 | セッションごとに新しい InstanceContext オブジェクトを作成します。 チャネルがセッションを作成しない場合、この値は、PerCall であるかのように動作します。 |
Single | 2 | すべての着信呼び出しに対して 1 つの InstanceContext オブジェクトだけを使用し、その後、そのオブジェクトをリサイクルしません。 サービス オブジェクトが存在しない場合は、1 つ作成されます。 |
例
サービス クラスに対して InstanceContextMode を設定する方法を次のコード例に示します。
// 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 、チャネルとユーザー定義サービス オブジェクト間の関連付けを管理します。 InstanceContextMode
プロパティを持つ ServiceBehaviorAttribute.InstanceContextMode 列挙型を使用して、InstanceContext オブジェクトの有効期間を指定します。 Windows Communication Foundation (WCF) は、すべての呼び出し、すべてのセッションに対して新しいInstanceContextオブジェクトを作成したり、オブジェクトが 1 つのサービス オブジェクトにバインドされることをInstanceContext指定したりできます。 実際の例については、「 インスタンス化」を参照してください。
Single
値は、サービスの有効期間の間、単一の InstanceContext オブジェクトを使用する必要があることを指定します。 値には、いくつかの注意事項が Single
関連付けられています。
値が ServiceBehaviorAttribute.InstanceContextMode 設定されている場合、値を
Single
設定しない限り、サービスは一度に ConcurrencyMode ConcurrencyMode.Multiple1 つのメッセージのみを処理できます。シングルトン有効期間動作 (ホスト アプリケーションが ServiceHost.ServiceHost コンストラクターを呼び出し、サービスとして使用するオブジェクトを渡す場合など) では、サービス クラスで ServiceBehaviorAttribute.InstanceContextMode を
Single
に設定する必要があります。これを行わなかった場合は、サービス ホストを開いたときに例外がスローされます。