InstanceContextMode 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定服務執行個體的數目,這些服務執行個體會用來處理傳入訊息內含的呼叫。
public enum class InstanceContextMode
public enum InstanceContextMode
type InstanceContextMode =
Public Enum InstanceContextMode
- 繼承
欄位
PerCall | 1 | 每次呼叫前會建立新的 InstanceContext 物件,呼叫結束後會回收該物件。 |
PerSession | 0 | 每個工作階段都會建立新的 InstanceContext 物件。 如果該通道沒有建立工作階段,則此值的作用就如同把此值設為 PerCall。 |
Single | 2 | 所有傳入的呼叫都使用同一個 InstanceContext 物件,且這些呼叫結束後不會回收該物件。 如果服務物件不存在,會建立一個新的物件。 |
範例
下列程式碼說明如何為服務類別設定 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 物件,或指定 InstanceContext 物件系結至單一服務物件。 如需運作範例,請參閱 實例。
Single
值會指定單一 InstanceContext 物件應該用於該服務的存留期。 有數個注意事項與 Single
值相關聯:
ServiceBehaviorAttribute.InstanceContextMode如果值設定為 ,除非您也將 ConcurrencyMode 值 ConcurrencyMode.Multiple 設定為
Single
,否則服務一次只能處理一則訊息。針對單一存留期行為 (例如,如果主應用程式呼叫 ServiceHost.ServiceHost 建構函式,並傳送物件用來做為該服務),服務類別必須將 ServiceBehaviorAttribute.InstanceContextMode 設為
Single
,否則服務主機開啟時會擲回例外狀況。