对于大多数开发人员来说,掌握一个开发工具的应用是一件非常重要的事情。那么WCF的出现,对开发人员来说又多了一个不错的选择。在这里我们先来为大家介绍一下WCF behavior的相关内容。WCF behavior,说白了,就是内部的附加操作。在效果上,有点像ASP.NET中的HttpModule和HttpHandle(实现原理当然不一样了)。#t#
创新互联建站专业为企业提供宜昌网站建设、宜昌做网站、宜昌网站设计、宜昌网站制作等企业网站建设、网页设计与制作、宜昌企业网站模板建站服务,十余年宜昌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
在上面的例子中,我们为Service添加了附加的操作,就是在调用契约方法之前,把从Client传来的参数+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级别,把行为加在终结点上,还记得上一篇文章的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);
- }
根据我们的需要,在不同级别定义WCF behavior,它们的作用域不同,像Operation级别只影响一个方法,而Endpoint级别影响到这个终结点的所有操作,Contract级别则影响调用该契约的所有操作。
有5种类型的WCF behavior:
ParameterInspection
MessageFormatting
OperationInvoker
MessageInspection
OperationSelector
网页题目:WCFbehavior不同级别及类型总结
网页地址:http://www.mswzjz.cn/qtweb/news25/22475.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能