TransactionFlowAttribute Classe

Definizione

Specifica se un'operazione del servizio accetta le transazioni in ingresso da un client.

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
Ereditarietà
TransactionFlowAttribute
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare questa enumerazione con la classe TransactionFlowOption a livello di operazione.

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

Commenti

TransactionFlowAttribute è un attributo utilizzato in modo dichiarativo per associare criteri di flusso delle transazioni specifici a un'operazione del servizio. La proprietà TransactionFlowOption di questo attributo specifica se la rispettiva operazione accetta una transazione propagata dal client o se l'operazione richiede che il client propaghi sempre una transazione. TransactionFlowAttribute può essere utilizzato anche come comportamento dell'operazione per associare a livello di codice i criteri di flusso delle transazioni a un'operazione specifica. In questo caso, deve essere aggiunto alla Behaviors raccolta nella descrizione dell'operazione.

Nota

OperationContract per ogni metodo che utilizza TransactionFlowAttribute deve fornire una stringa Action completa. Il valore "*" non è supportato.

Costruttori

TransactionFlowAttribute(TransactionFlowOption)

Inizializza una nuova istanza della classe TransactionFlowAttribute.

Proprietà

Transactions

Ottiene un valore che indica se la transazione in ingresso è supportata.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Aggiunge altri parametri (impostazioni) al contesto di associazione per supportare il comportamento dell'operazione. Questo metodo non può essere ereditato.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Allega la funzionalità dell'attributo all'oggetto ProxyOperation per il metodo contrassegnato dall'attributo. Questo metodo non può essere ereditato.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Allega la funzionalità dell'attributo all'oggetto DispatchOperation per il metodo contrassegnato dall'attributo. Questo metodo non può essere ereditato.

IOperationBehavior.Validate(OperationDescription)

Verifica che l'operazione è in grado di supportare il comportamento. Questo metodo non può essere ereditato.

Si applica a

Vedi anche