InstanceContextMode 列舉

定義

指定服務執行個體的數目,這些服務執行個體會用來處理傳入訊息內含的呼叫。

C#
public enum InstanceContextMode
繼承
InstanceContextMode

欄位

PerCall 1

每次呼叫前會建立新的 InstanceContext 物件,呼叫結束後會回收該物件。

PerSession 0

每個工作階段都會建立新的 InstanceContext 物件。 如果該通道沒有建立工作階段,則此值的作用就如同把此值設為 PerCall

Single 2

所有傳入的呼叫都使用同一個 InstanceContext 物件,且這些呼叫結束後不會回收該物件。 如果服務物件不存在,會建立一個新的物件。

範例

下列程式碼說明如何為服務類別設定 InstanceContextMode

C#
// 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;
    }
}

備註

類別 System.ServiceModel.InstanceContext 會管理通道與使用者定義服務物件之間的關聯。 請使用 InstanceContextMode 列舉並配合 ServiceBehaviorAttribute.InstanceContextMode 屬性來指定 InstanceContext 物件的存留期。 Windows Communication Foundation (WCF) 可以為每個呼叫、每個會話建立新的 InstanceContext 物件,或指定 InstanceContext 物件系結至單一服務物件。 如需運作範例,請參閱 實例

Single 值會指定單一 InstanceContext 物件應該用於該服務的存留期。 有數個注意事項與 Single 值相關聯:

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

另請參閱