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