Jazyk

TransactionFlowAttribute Třída

Definice

Určuje, zda operace služby přijímá příchozí transakce z klienta.

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
Dědičnost
TransactionFlowAttribute
Atributy
Implementuje

Příklady

Následující příklad kódu ukazuje použití tohoto výčtu společně s TransactionFlowOption třídou na úrovni operace.

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."  
      );  
    }  
  }  
}  

Poznámky

Je TransactionFlowAttribute atribut používaný deklarativním přidružením konkrétní zásady toku transakce k operaci služby. Vlastnost TransactionFlowOption tohoto atributu určuje, zda příslušná operace přijímá transakci tok z klienta, nebo pokud operace vyžaduje, aby klient vždy tok transakce. Dá TransactionFlowAttribute se také použít jako chování operace k programovému přidružení zásady toku transakce ke konkrétní operaci. V tomto případě by se měla přidat do Behaviors kolekce v popisu operace.

Note

Pro OperationContract každou metodu TransactionFlowAttribute , která používá, musí poskytnout plně kvalifikovaný Action řetězec. Hodnota "*" není podporována.

Konstruktory

Name Description
TransactionFlowAttribute(TransactionFlowOption)

Inicializuje novou instanci TransactionFlowAttribute třídy.

Vlastnosti

Name Description
Transactions

Získá hodnotu, která označuje, zda příchozí transakce je podporována.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Přidá do kontextu vazby další parametry (nastavení), které podporují chování této operace. Tuto metodu nelze zdědit.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Připojí funkci atributu k objektu ProxyOperation pro metodu, kterou atribut označí. Tuto metodu nelze zdědit.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Připojí funkci atributu k objektu DispatchOperation pro metodu, kterou atribut označí. Tuto metodu nelze zdědit.

IOperationBehavior.Validate(OperationDescription)

Ověřuje, že operace může toto chování podporovat. Tuto metodu nelze zdědit.

Platí pro

Viz také