在WCF事务编程模型下,通过服务契约确定事务流转的策略(参阅《上篇》),通过事务绑定实施事务的流转(参阅《中篇》)。但是,对于事务绑定接收到并成功创建的事务来说,服务操作的执行是否需要自动登记到该事务之中,以及服务操作采用怎样的提交方式,这就是服务端自己说了算了。正因为如此,WCF通过服务(操作)行为的形式定义事务的登记和提交(完成)方式。
在OperationBehaviorAttribute特性(其本身是一个操作行为)中定了两个与事务管理相关的属性:TransactionAutoComplete和TransactionScopeRequired。
1: [AttributeUsage(AttributeTargets.Method)]
class OperationBehaviorAttribute : Attribute, IOperationBehavior
3: {
//其他成员
bool TransactionScopeRequired { get; set; }
bool TransactionAutoComplete { get; set; }
7: }