新聞中心
對于大多數(shù)開發(fā)人員來說,掌握一個開發(fā)工具的應(yīng)用是一件非常重要的事情。那么WCF的出現(xiàn),對開發(fā)人員來說又多了一個不錯的選擇。在這里我們先來為大家介紹一下WCF behavior的相關(guān)內(nèi)容。WCF behavior,說白了,就是內(nèi)部的附加操作。在效果上,有點像ASP.NET中的HttpModule和HttpHandle(實現(xiàn)原理當(dāng)然不一樣了)。#t#

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供宜昌網(wǎng)站建設(shè)、宜昌做網(wǎng)站、宜昌網(wǎng)站設(shè)計、宜昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、宜昌企業(yè)網(wǎng)站模板建站服務(wù),十余年宜昌做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
在上面的例子中,我們?yōu)镾ervice添加了附加的操作,就是在調(diào)用契約方法之前,把從Client傳來的參數(shù)+1。我們還可以在Client端也添加類似的行為,我會在下一章中給出這個例子。
behavior在Service和Client分別有不同的類型:
在Service中,這些類型都存放在System.ServiceModel.Dispatcher命名空間下。
在Client中,這些類型都存放在System.ServiceModel.Channels命名空間下。
此外,可以在3個級別定義WCF behavior:
1.Contract級別,顧名思義,把行為加諸于接口(契約)之上,如下所示,也就是MyContractBehavior這個Attribute:
- [MyContractBehavior]
- [ServiceContract]
- public interface ISimple
- {
- [OperationContract(IsOneWay=true)]
- void AcceptRequest(string someRequest);
- }
2.Endpoint級別,把行為加在終結(jié)點上,還記得上一篇文章的MyParameterInspector么,下面是code形式的添加(另一種是在配置文件中添加,稍后討論):
- host.Description.Endpoints[0].Contract.Operations[0].
Behaviors.Add(new MyParameterInspector());
3.Operation級別,把行為加在操作(契約的方法)上。這個級別是***的。如下所示,IdentityValidate和IdentityCache都是自定義行為。
- [ServiceContract]
- public interface IIdentityService
- {
- [IdentityValidate]
- [IdentityCache]
- [OperationContract]
- int GetIDByName(string name);
- }
根據(jù)我們的需要,在不同級別定義WCF behavior,它們的作用域不同,像Operation級別只影響一個方法,而Endpoint級別影響到這個終結(jié)點的所有操作,Contract級別則影響調(diào)用該契約的所有操作。
有5種類型的WCF behavior:
ParameterInspection
MessageFormatting
OperationInvoker
MessageInspection
OperationSelector
名稱欄目:WCFbehavior不同級別及類型總結(jié)
路徑分享:http://m.fisionsoft.com.cn/article/cdcoseo.html


咨詢
建站咨詢
