WCF擴充套件

2021-04-14 00:36:38 字數 1639 閱讀 3358

communication foundation (wcf) 提供了許多擴充套件點,供開發人員自定義執行時行為,從而實現服務排程和客戶**呼叫。您可以通過編寫能以宣告方式應用到服務中的自定義行為來使用這些擴充套件點 .

wcf 在通道層的頂部還提供了乙個高階執行時,主要是針對應用程式開發人員。在 wcf 文件中,它常被稱為服務模型層。該高階執行時主要由乙個稱作排程程式(在服務主機上下文中)的元件和乙個稱作**(在客戶端上下文中)的元件組成。

排程程式/**組合的主要作用是在 wcf 訊息物件和 .net framework 方法呼叫間進行轉換)。這些元件按照一系列明確定義的步驟來執行此過程,並在此過程的每個步驟中都提供了可供插入的擴充套件點。您可以使用這些擴充套件點來實現各種自定義行為,包括訊息或引數驗證、訊息日誌記錄、訊息轉換、自定義序列化/反序列化格式、輸出快取、物件共用、錯誤處理和授權等.

1.排程程式/**擴充套件

排程程式和**都提供了大量的擴充套件點,您可以在其中插入自己的**;這些擴充套件常被稱為偵聽器,因為它們允許您偵聽預設的執行時執行行為。不過,我通常稱它們為執行時擴充套件。

圖 2 顯示了客戶端**體系結構及可用的擴充套件點。**的主要作用是將呼叫方提供的物件(引數)轉換為 wcf 訊息物件,然後將後者提供給底層通道堆疊進行網路傳輸。

可以通過 clientoperation 和 clientruntime 物件在**上配置這些擴充套件。您可以找到乙個用於各種服務操作的 clientoperation 物件和乙個用於從整體上配置**的 clientruntime 物件。clientoperation 提供了用於管理引數檢查和訊息格式化擴充套件的屬性,而 clientruntime 則提供了用於管理訊息檢查擴充套件的屬性。

當排程程式收到來自通道堆疊的 message 物件時,遇到的第乙個擴充套件點便是訊息檢查。然後,排程程式必須選擇乙個要呼叫的操作(步驟 2),然後才能繼續 — 這裡有乙個擴充套件點用於覆蓋預設的操作選擇行為。確定目標操作後,排程程式會將訊息反序列化為呼叫目標方法時可作為引數提供的物件。此時(步驟 3),排程程式提供用於進行訊息格式化(反序列化)和引數檢查(步驟 4)的擴充套件點。排程程式的最後一步是呼叫提供就緒引數的目標方法。您甚至可以通過提供自定義的操作呼叫程式物件來替代這一步。

可以通過 dispatchruntime 和 dispatchoperation 物件在排程程式上配置這些擴充套件,如圖 3 所示。稍後我將簡要介紹如何訪問這些物件,不過,首先讓我們討論一下如何實現它們。

2 實現自定義擴充套件

上述的每個擴充套件點都是根據 .net 介面定義來模擬的。注意,在某些情況下,相同的邏輯擴充套件型別要求在排程程式和**端之間使用另一介面。下面我將詳細介紹如何實現其中的部分介面。

訊息檢查器

不管是什麼操作,假設您要檢查的是流入和流出服務的訊息,而不是引數。在這種情況下,您需要使用訊息檢查擴充套件點。與引數檢查不同,此時用於排程程式和**(分別是 idispatchmessageinspector 和 iclientmessageinspector)的訊息檢查介面是不同的。不過,當需要支援兩端時,始終可以實現這兩個介面。

idispatchmessageinspector 有兩個方法:afterreceiverequest 和 beforesendreply,這樣您就有前偵聽點和後偵聽點來檢查 wcf 訊息物件了。iclientmessageinspector 還有兩個提供相反點的方法:afterreceivereply 和 beforesendrequest。

Wcf擴充套件

asp.net mvc和wcf真是微軟兩個很棒的框架,設計的很好,可擴充套件性非常強,到處都是橫切 管道。以前寫過一篇mvc流程的文章,主要是使用了mvc的各種擴充套件。大部分情況下針對服務模型層進行擴充套件即可,我們可以看到就乙個服務呼叫已經被完全打散了,細化到 呼叫的引數 呼叫什麼方法 呼叫什麼...

翻譯 談WCF的擴充套件功能

首先宣告一點,由於深受技術書籍呆板枯燥的翻譯的折磨,本人並不會酌字酌句去對照著翻譯,對於直譯過來難以理解的句子我盡可能會換一種更加容易理解的說法,或者加入一些自己的理解 會以不同顏色的字型顯示 有些不重要的和本主題無關的資訊我也可能會略過不作翻譯。本人剛接觸wcf不久,技術能力和英文水平都不咋地,若...

WCF入門(十一) WCF安全

乙個強大的wcf服務安全系統,擁有兩種安全模式或級別預期的客戶端可以訪問的服務。這是常見的分布式事務的安全威脅正在放緩,在很大程度上由wcf決定。wcf服務有四個主要的安全功能,如下圖所示。wcf提供以下傳輸安全模式,以確保在客戶機和伺服器之間的安全通訊。多樣傳輸安全模式如下所述。name wcfs...