自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF擴(kuò)展點在自定義運行時使用

開發(fā) 開發(fā)工具
在WCF工具中,提供了許多WCF擴(kuò)展點,開發(fā)人員可以在進(jìn)行自定義運行時來使用這些。今天就為大家詳細(xì)介紹這方面的內(nèi)容。

WCF開發(fā)工具中具有許多比較突出的優(yōu)勢特點,這也決定了它在開發(fā)領(lǐng)域中所占據(jù)的主導(dǎo)地位。在這里,我們將會為大家詳細(xì)介紹一下有關(guān)WCF擴(kuò)展點的相關(guān)應(yīng)用方式,以幫助大家掌握這一工具的應(yīng)用。#t#

Communication Foundation (WCF) 提供了許多WCF擴(kuò)展點,供開發(fā)人員自定義運行時行為,從而實現(xiàn)服務(wù)調(diào)度和客戶代理調(diào)用。您可以通過編寫能以聲明方式應(yīng)用到服務(wù)中的自定義行為來使用這些擴(kuò)展點。

WCF 在通道層的頂部還提供了一個高級運行時,主要是針對應(yīng)用程序開發(fā)人員。在 WCF 文檔中,它常被稱為服務(wù)模型層。該高級運行時主要由一個稱作調(diào)度程序(在服務(wù)主機(jī)上下文中)的組件和一個稱作代理(在客戶端上下文中)的組件組成。

調(diào)度程序/代理組合的主要作用是在 WCF 消息對象和 .NET Framework 方法調(diào)用間進(jìn)行轉(zhuǎn)換)。這些組件按照一系列明確定義的步驟來執(zhí)行此過程,并在此過程的每個步驟中都提供了可供插入的擴(kuò)展點。您可以使用這些擴(kuò)展點來實現(xiàn)各種自定義行為,包括消息或參數(shù)驗證、消息日志記錄、消息轉(zhuǎn)換、自定義序列化/反序列化格式、輸出緩存、對象共用、錯誤處理和授權(quán)等.

1.調(diào)度程序/代理擴(kuò)展

調(diào)度程序和代理都提供了大量的WCF擴(kuò)展點,您可以在其中插入自己的代碼;這些擴(kuò)展常被稱為偵聽器,因為它們允許您偵聽默認(rèn)的運行時執(zhí)行行為。不過,我通常稱它們?yōu)檫\行時擴(kuò)展。

顯示了客戶端代理體系結(jié)構(gòu)及可用的擴(kuò)展點。代理的主要作用是將調(diào)用方提供的對象(參數(shù))轉(zhuǎn)換為 WCF 消息對象,然后將后者提供給底層通道堆棧進(jìn)行網(wǎng)絡(luò)傳輸。

可以通過 ClientOperation 和 ClientRuntime 對象在代理上配置這些擴(kuò)展。您可以找到一個用于各種服務(wù)操作的 ClientOperation 對象和一個用于從整體上配置代理的 ClientRuntime 對象。ClientOperation 提供了用于管理參數(shù)檢查和消息格式化擴(kuò)展的屬性,而 ClientRuntime 則提供了用于管理消息檢查擴(kuò)展的屬性。

當(dāng)調(diào)度程序收到來自通道堆棧的 Message 對象時,遇到的第一個擴(kuò)展點便是消息檢查。然后,調(diào)度程序必須選擇一個要調(diào)用的操作(步驟 2),然后才能繼續(xù) — 這里有一個擴(kuò)展點用于覆蓋默認(rèn)的操作選擇行為。確定目標(biāo)操作后,調(diào)度程序會將消息反序列化為調(diào)用目標(biāo)方法時可作為參數(shù)提供的對象。此時(步驟 3),調(diào)度程序提供用于進(jìn)行消息格式化(反序列化)和參數(shù)檢查(步驟 4)的擴(kuò)展點。調(diào)度程序的最后一步是調(diào)用提供就緒參數(shù)的目標(biāo)方法。您甚至可以通過提供自定義的操作調(diào)用程序?qū)ο髞硖娲@一步。

可以通過 DispatchRuntime 和 DispatchOperation 對象在調(diào)度程序上配置這些擴(kuò)展。稍后我將簡要介紹如何訪問這些對象,不過,首先讓我們討論一下如何實現(xiàn)它們。

2 實現(xiàn)自定義擴(kuò)展

上述的每個WCF擴(kuò)展點都是根據(jù) .NET 接口定義來模擬的。注意,在某些情況下,相同的邏輯擴(kuò)展類型要求在調(diào)度程序和代理端之間使用另一接口。下面我將詳細(xì)介紹如何實現(xiàn)其中的部分接口。

消息檢查器

不管是什么操作,假設(shè)您要檢查的是流入和流出服務(wù)的消息,而不是參數(shù)。在這種情況下,您需要使用消息檢查WCF擴(kuò)展點。與參數(shù)檢查不同,此時用于調(diào)度程序和代理(分別是 IDispatchMessageInspector 和 IClientMessageInspector)的消息檢查接口是不同的。不過,當(dāng)需要支持兩端時,始終可以實現(xiàn)這兩個接口。

IDispatchMessageInspector 有兩個方法:AfterReceiveRequest 和 BeforeSendReply,這樣您就有前偵聽點和后偵聽點來檢查 WCF 消息對象了。IClientMessageInspector 還有兩個提供相反點的方法:AfterReceiveReply 和 BeforeSendRequest。

責(zé)任編輯:曹凱 來源: CSDN
相關(guān)推薦

2015-07-20 15:44:46

Swift框架MJExtension反射

2023-02-12 12:00:57

2009-02-10 12:55:39

自定義控件AJAX.NET

2024-03-21 09:15:58

JS運行的JavaScrip

2012-07-24 15:03:19

OpenStack架構(gòu)

2009-11-09 16:06:53

WCF自定義集合

2009-06-17 15:46:36

Java運行時本機(jī)內(nèi)存

2019-07-12 09:30:12

DashboardDockerDNS

2021-09-11 15:38:23

容器運行鏡像開放

2009-07-06 13:49:29

2010-02-25 11:23:29

WCF返回自定義格式

2010-03-01 11:10:41

WCF綁定元素

2010-04-28 12:33:36

Oracle自定義函數(shù)

2013-01-10 09:36:19

NagiosNagios插件

2021-08-18 08:32:09

代碼運行時間示波器

2013-11-26 16:49:55

Android開發(fā)運行時KitKat

2020-12-07 13:31:43

GoMutex開發(fā)者

2023-01-03 09:10:21

2023-07-28 10:42:43

2024-03-20 10:46:00

云原生容器
點贊
收藏

51CTO技術(shù)棧公眾號