|
終結點分發器在自己的運行時中對請求消息的處理最終肯定體現在相應操作的執行。如果從服務描述的角度來看,操作是一個OperationDescription對象。而服務端分發運行時中的操作則代表的是一個DispatchOperation對象。作為服務描述的一部分,服務所有終結點的所有操作描述(OperationDescription)在ServiceHost創建過程中被創建。而當ServiceHost被正常開始時,這些操作描述最終轉換成分發操作(DispatchOperation)。而DispatchRuntime的Operations屬性代表了對應終結點的所有分發操作。
目錄:
一、序列化與反序列
二、調用上下文初始化
三、參數的檢驗
四、服務實例的釋放
五、事務
六、操作的執行
七、參數和返回值的釋放
八、身份模擬
總結
接下來,我們同樣從可擴展的角度來分析DispatchOperation,下面的代碼片斷列出了所有可供擴展的屬性。
public sealed class DispatchOperation{
//序列化與反序列化
public bool DeserializeRequest { get; set; }
public bool SerializeReply { get; set; }
public SynchronizedCollection<FaultContractInfo> FaultContractInfos { get; }
public IDispatchMessageFormatter Formatter { get; set; }
//執行上下文初始化
public SynchronizedCollection<ICallContextInitializer> CallContextInitializers { get; }
//參數檢驗
public SynchronizedCollection<IParameterInspector> ParameterInspectors { get; }
//服務實例釋放
public bool ReleaseInstanceAfterCall { get; set; }
public bool ReleaseInstanceBeforeCall { get; set; }
//事務
public bool TransactionAutoComplete { get; set; }
public bool TransactionRequired { get; set; }
//操作執行
public IOperationInvoker Invoker { get; set; }
//參數/返回值的釋放
public bool AutoDisposeParameters { get; set; }
//身份模擬
public ImpersonationOption Impersonation { get; set; }
}
NET技術:WCF服務端運行時架構體系詳解[續篇],轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。