日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
揭秘四種行為WCF接口使用

接口是實(shí)現(xiàn)項(xiàng)目的若耦合的,是程序員***用的,WCF有四個(gè)常見(jiàn)的接口,下面我們就來(lái)詳細(xì)的看看。WCF提供了四種類(lèi)型的行為:服務(wù)行為、終結(jié)點(diǎn)行為、契約行為和操作行為。這四種行為分別定義了四個(gè)WCF接口:IServiceBehavior,IEndpointBehavior,IContractBehavior以及IOperationBehavior。

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供武定企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為武定眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

#T#是四個(gè)不同的WCF接口,但它們的接口方法卻基本相同,分別為AddBindingParameters(),ApplyClientBehavior()以及ApplyDispatchBehavior()。注意,IServiceBehavior由于只能作用在服務(wù)端,因此并不包含ApplyClientBehavior()方法。我們可以定義自己的類(lèi)實(shí)現(xiàn)這些WCF接口,但需要注意幾點(diǎn):
1、行為的作用范圍,可以用如下表格表示:
2、可以利用自定義特性的方式添加擴(kuò)展的服務(wù)行為、契約行為和操作行為,但不能添加終結(jié)點(diǎn)行為;可以利用配置文件添加擴(kuò)展服務(wù)行為和終結(jié)點(diǎn)行為,但不能添加契約行為和操作行為。但這些擴(kuò)展的行為都可以通過(guò)ServiceDescription添加。

利用特性添加行為,意味著我們?cè)诙x自己的擴(kuò)展行為時(shí),可以將其派生自Attribute類(lèi),然后以特性方式添加。例如:

 
 
  1. [AttributeUsage(AttributeTargets.Class|AttributeTargets.Interface)]  
  2. publicclassMyServiceBehavior:Attribute,IServiceBehavior...  
  3. [MyServiceBehavior]  
  4. publicinterfaceIService... 

如果以配置文件的方式添加行為,則必須定義一個(gè)類(lèi)繼承自BehaviorExtensionElement(屬于命名空間System.ServiceModel.Configuration),然后重寫(xiě)屬性BehaviorType以及CreateBehavior()方法。BehaviorType屬性返回的是擴(kuò)展行為的類(lèi)型,而CreateBehavior()方法則負(fù)責(zé)創(chuàng)建該擴(kuò)展行為的對(duì)象實(shí)例:

 
 
  1. publicclassMyBehaviorExtensionElement:BehaviorExtensionElement  
  2. {  
  3. publicMyBehaviorExtensionElement(){}  
  4. publicoverrideTypeBehaviorType  
  5. {  
  6. get{returntypeof(MyServiceBehavior);}  
  7. }  
  8.  
  9. protectedoverrideobjectCreateBehavior()  
  10. {  
  11. returnnewMyServiceBehavior();  
  12. }  
  13. }  

如果配置的Element添加了新的屬性,則需要為新增的屬性應(yīng)用ConfigurationPropertyAttribute,例如:

 
 
  1. [ConfigurationProperty("providerName",IsRequired=true)]  
  2. publicvirtualstringProviderName  
  3. {  
  4. get  
  5. {  
  6. returnthis["ProviderName"]asstring;  
  7. }  
  8. set  
  9. {  
  10. this["ProviderName"]=value;  
  11. }  

配置文件中的配置方法如下所示:

 
 
  1.  
  2.  
  3.  
  4. <servicenameservicename="MessageInspectorDemo.Calculator"> 
  5. <endpointbehaviorConfigurationendpointbehaviorConfiguration="messageInspectorBehavior" 
  6. address="http://localhost:801/Calculator" 
  7. binding="basicHttpBinding" 
  8. contract="MessageInspectorDemo.ICalculator"/> 
  9.  
  10.  
  11.  
  12.  
  13. <behaviornamebehaviorname="messageInspectorBehavior"> 
  14. <myBehaviorExtensionElementproviderNamemyBehaviorExtensionElementproviderName="Test"/> 
  15.  
  16.  
  17.  
  18.  
  19.  
  20. <addnameaddname="myBehaviorExtensionElement" 
  21. type="MessageInspectorDemo.MyBehaviorExtensionElement,MessageInspectorDemo,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"/> 
  22.  
  23.  
  24.  
  25.  

注意,在一節(jié)中,下的就是我們擴(kuò)展的行為,providerName則是MyBehaviorExtensionElement增加的屬性。如果擴(kuò)展了IEndpointBehavior,則配置節(jié)的名稱(chēng)為。節(jié)負(fù)責(zé)添加自定義行為的擴(kuò)展。其中,中的name值與下的對(duì)應(yīng)。


本文題目:揭秘四種行為WCF接口使用
文章分享:http://www.5511xx.com/article/ccoopds.html