终于我又看完了二期爱情保卫戰太酸爽了,推荐链接:不多说,谁看谁入迷下面言归正传,
看看这个很有意思的Behavior
在前面的文章中,我也清楚的说明了整个wcf通信流而Behavior这个泼妇可以在wcf通信流中的任何地方插上一脚,蛮狠无比利用的好,让你上天堂利用的不
好,让你下地狱。下面让你看看behavior到底有哪些可以注入的点??先画个简图:
上面的图大概就是wcf的通信简图,所有蓝色字体都是Behavior注入的点其中Client和Service端都可以注入,如果按照功能分的话又可以分为“操作级别”和
”端点级别“,下面我来简要的分解下
从图中你也可以看到,消息检查器是放在Channel这個级别的也就是说它可以监视Client和Server的入站请求,也就是说所有的请求都需要通过它转发如果
这样的话,那我是不是可以在这个注入点上洎由的修改变更,拦截入站和出站请求而且利用这个特性我还可以做很多的事情,比如日志记录记录统计等等,下
4. 最后我们看一下垺务方法
下面看看效果。在效果图中,你应该看到了在我的Action中的方法前后各有一段“入站消息”和“出站消息”,是不是很爽?
“消息格式化器(IDispatchMessageFormatter)”等等。。 为什么说等等这个词很简单啊,,其实还有很多系统内置的既然是Operation,那就必
然是针对方法的還记得OperationContract是怎么套在方法上的吗?? 是特性对吧,,同样的道理OperationBehavior也是一样,那怎么用呢?
同样也是很简单的继承几个接口即可。。
我做个简单的Action参数长度验证(长度不超过8个字符)
4. 然后我在客户端故意输入大于5的字符,看看效果怎么样?
5. 最后看看效果图,可以看到最终的入站消息会抛出一个异常。。
剩下的这两个玩法都差不多你只需要extends一下,然后加入到OperationBehavior即可有了上面的思想,我想下面这些使用起来都不是问题吧。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。