WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程

WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程

ID:43985206

大小:245.28 KB

页数:11页

时间:2019-10-17

WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程_第1页
WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程_第2页
WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程_第3页
WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程_第4页
WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程_第5页
资源描述:

《WCF技术剖析之三十一-WCF事务编程[中篇]-WCF技巧-WCF教程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WCF技术剖析之三^一:WCF事务编程[中篇][续《上篇》]通过将TransactionFlowAttribute特性应用在服务契约的某个操作Z上,并指定相应的TransactionFlowOption枚举直,仅仅定义了事务流转的策略而已。或者说,通过这种方式确定对事物流转的一种意愿,客户端是否愿意将当前事务流出,服务端是否愿意接受流入的事务,可以通过TransactionFlowAttribute特性进行控制。所以说,服务操作上定义个TransactionFlowAttribute特性是是否进彳亍事务流转的总开关,真正的事务传播是建立在TransactionFl

2、owOption.Allowed或者TransactionFlowOption.Mandatory之上的。至于WCF框架是否有能力对事物进行流转,按照怎样的协议进行流转,则是通过绑定实现的,现在我们首先看看怎样的绑定具有事务流转的能力。一、绑定对事务流转的支持《WCF技术剖析(卷1)》小的第3章对绑定的本质进行了深层次的剖析,阅读过本章的读者应该知道:绑定是一系列绑定元素(BindingElement)的有序组合,相应的绑定元素对消息进行和应的处理以实现特定的目标,比如MessageEncodingBindingElement实现对消息的编码和解码,Transpo

3、rtBindingElement实现对消息的传输。消息交换是WCF进行通信的唯一手段,任何需耍传输的数据最终都需耍最为消息的一部分。对彖事务流转来说,客户端需耍将当前事务进行序列化并嵌入到消息中;服务端则需要从接收到的消息中提取事务相关信息,反序列化以重建事务。这样的操作同样实现在一个绑定元素屮,即TransactionFlowBindingElemento既然TransactionFlowBindingElement实现了对事物的流转,那么我们就可以根据某个绑定对象的绑定元素集合中是否包含该元素判断绑定是否支持事务流转。为此我写了如下一个简单的方法,传入相应的B

4、inding对象,打印出相应的绑定类型是否支持事务流转:1:staticvoidPrintTransactionFlowSupport(Bindingbinding)乙•3:iTransactionFlov/BindingElementtransactionFlowElement=binding.CreateBindingElements()・Find();4:Console.WriteLine("{0,-30}{1}n/binding.GetType()・NameztransactionFlowEle

5、ment!=null?nYesn:"No”);5:}现在,我们通过调用PrintTransactionElowSupport方法,判断所冇的系统绑定是否为事务流转捉供支持。从输出结果来看,除了BasicHttpBinding>NetMsmqBinding和MsmqlntegrationBinding三种,其余的系统绑定均包含TransactionFlowBindingElement绑定元素,也就是说它们均具有对事务就是传播的能力。1:classProgram3:A・staticvoidMain(string[]args)5:tConsole・WriteLine("

6、{0,-30}{1}••Binding1',^TransactionFlow1');6:Console・WriteLine(nn)7://BasicHttpBinding8:Q・PrintTransactionFlowSupport(newBasicHttpBinding());37•10://WSBinding11:PrintTransactionFlowSupport(newWSHttpBinding());12:PrintTransactionFlowSupport(newWS2007HttpBinding());13:PrintTransactionFlo

7、wSupport(newWSDualHttpBinding());14:PrintTransactionFlowSupport(newWSFederationHttpBinding());15:PrintTransactionFlowSupport(newWS2007FederationHttpBinding());16:17://TCPandIPCBinding18:PrintTransactionFlowSupport(newNetTcpBinding());19:PrintTransactionFlowSupport(newNetNamedPipeBindi

8、ng())

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。