InstanceContext.GetServiceInstance 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回服務的執行個體。
多載
GetServiceInstance() |
傳回執行個體內容的服務執行個體。 |
GetServiceInstance(Message) |
傳回執行個體內容的服務執行個體,以回應傳入訊息。 |
GetServiceInstance()
傳回執行個體內容的服務執行個體。
public:
System::Object ^ GetServiceInstance();
public object GetServiceInstance ();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object
傳回
代表服務執行個體的物件。
例外狀況
此服務執行個體處於建立或開啟狀態,或尚未初始化。
服務執行個體已中止。
此服務執行個體已關閉,無法在這些狀態下修改。
此服務執行個體發生錯誤,無法在這些狀態下修改。
範例
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
觸發服務物件之建立的傳入訊息。
傳回
代表服務執行個體的物件。
例外狀況
此服務執行個體處於建立或開啟狀態,或尚未初始化。
服務執行個體已中止。
此服務執行個體已關閉,無法在這些狀態下修改。
此服務執行個體發生錯誤,無法在這些狀態下修改。
範例
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 與服務物件,因此實際有需要時才會部署資源。