TransactionFlowAttribute Класс

Определение

Указывает, принимает ли операция службы входящие транзакции от клиента.

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 IOperationBehavior
Public NotInheritable Class TransactionFlowAttribute
Inherits Attribute
Implements IOperationBehavior
Наследование
TransactionFlowAttribute
Атрибуты
Реализации

Примеры

В следующем примере кода показано использование этого перечисления вместе с 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 коллекцию в описании операции.

Note

Для 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)

Присоединяет функциональные возможности атрибута к ProxyOperation объекту для метода, который помечает атрибут. Этот метод нельзя наследовать.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Присоединяет функциональные возможности атрибута к DispatchOperation объекту для метода, который помечает атрибут. Этот метод нельзя наследовать.

IOperationBehavior.Validate(OperationDescription)

Проверяет, может ли операция поддерживать это поведение. Этот метод нельзя наследовать.

Применяется к

См. также раздел