TransactionFlowAttribute 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定服务操作是否接受来自客户端的传入事务。
public ref class TransactionFlowAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class TransactionFlowAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior[<System.AttributeUsage(System.AttributeTargets.Method)>]
type TransactionFlowAttribute = class
    inherit Attribute
    interface IOperationBehaviorPublic NotInheritable Class TransactionFlowAttribute
Inherits Attribute
Implements IOperationBehavior- 继承
- 属性
- 实现
示例
下面的代码示例演示此枚举如何与 TransactionFlowOption 类在操作级别一起使用。
using System;  
using System.ServiceModel;  
using System.Transactions;  
namespace Microsoft.WCF.Documentation  
{  
  [ServiceContract(  
    Namespace="http://microsoft.wcf.documentation",   
    SessionMode=SessionMode.Required  
  )]  
  public interface IBehaviorService  
  {  
    [OperationContract]  
    [TransactionFlow(TransactionFlowOption.Mandatory)]  
    string TxWork(string message);  
  }  
  // Note: To use the TransactionIsolationLevel property, you   
  // must add a reference to the System.Transactions.dll assembly.  
  /* The following service implementation:  
   *   -- Processes messages on one thread at a time  
   *   -- Creates one service object per session  
   *   -- Releases the service object when the transaction commits  
   */  
  [ServiceBehavior(  
    ConcurrencyMode=ConcurrencyMode.Single,  
    InstanceContextMode=InstanceContextMode.PerSession,  
    ReleaseServiceInstanceOnTransactionComplete=true  
  )]  
  public class BehaviorService : IBehaviorService, IDisposable  
  {  
    Guid myID;  
    public BehaviorService()  
    {  
      myID = Guid.NewGuid();  
      Console.WriteLine(  
        "Object "  
        + myID.ToString()  
        + " created.");  
    }  
    /*  
    / * The following operation-level behaviors are specified:  
    / * Always executes under a transaction scope.  
    / * The transaction scope is completed when the operation  
    / * terminates without an unhandled exception.  
    /*  
    [OperationBehavior(  
      TransactionAutoComplete = true,  
      TransactionScopeRequired = true  
    )]  
    public string TxWork(string message)  
    {  
      // Do some transactable work.  
      Console.WriteLine("TxWork called with: " + message);  
      // Display transaction information.  
      TransactionInformation info = Transaction.Current.TransactionInformation;  
      Console.WriteLine("The distributed tx ID: {0}.", info.DistributedIdentifier);  
      Console.WriteLine("The tx status: {0}.", info.Status);  
      return String.Format("Hello. This was object {0}.",myID.ToString()) ;  
    }  
    public void Dispose()  
    {  
      Console.WriteLine(  
        "Service "  
        + myID.ToString()  
        + " is being recycled."  
      );  
    }  
  }  
}  
注解
              TransactionFlowAttribute 是以声明方式使用的属性,可将特定事务流策略与服务操作关联。 此特性的 TransactionFlowOption 属性指定各个操作是否接受从客户端流入的事务,或指定操作是否要求客户端始终流动事务。 
              TransactionFlowAttribute 还能够作为操作行为使用,可以编程的方式将事务流策略与特定操作关联。 在这种情况下,应将其添加到 Behaviors 集合中的操作说明中。
注意
使用 OperationContract 的每个方法的 TransactionFlowAttribute 都必须提供完全限定的 Action 字符串。 不支持“*”值。
构造函数
| TransactionFlowAttribute(TransactionFlowOption) | 初始化 TransactionFlowAttribute 类的新实例。 | 
属性
| Transactions | 获取一个值,该值指示是否支持传入事务。 | 
| TypeId | 在派生类中实现时,获取此 Attribute 的唯一标识符。(继承自 Attribute) | 
方法
| Equals(Object) | 返回一个值,该值指示此实例是否与指定的对象相等。(继承自 Attribute) | 
| GetHashCode() | 返回此实例的哈希代码。(继承自 Attribute) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| IsDefaultAttribute() | 在派生类中重写时,指示此实例的值是否是派生类的默认值。(继承自 Attribute) | 
| Match(Object) | 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。(继承自 Attribute) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) | 
显式接口实现
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | 将一组名称映射为对应的一组调度标识符。(继承自 Attribute) | 
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。(继承自 Attribute) | 
| _Attribute.GetTypeInfoCount(UInt32) | 检索对象提供的类型信息接口的数量(0 或 1)。(继承自 Attribute) | 
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | 提供对某一对象公开的属性和方法的访问。(继承自 Attribute) | 
| IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) | 向绑定上下文中添加额外的参数(设置),以支持此操作的行为。 无法继承此方法。 | 
| IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) | 将属性功能附加到此属性功能标记的方法的  | 
| IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) | 将属性功能附加到此属性功能标记的方法的 DispatchOperation 对象。 无法继承此方法。 | 
| IOperationBehavior.Validate(OperationDescription) | 验证操作是否能够支持此行为。 无法继承此方法。 |