TransactionFlowAttribute Classe

Définition

Spécifie si une opération de service accepte les transactions entrantes provenant d’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
Héritage
TransactionFlowAttribute
Attributs
Implémente

Exemples

L'exemple de code suivant montre l'utilisation de cette énumération avec la classe TransactionFlowOption au niveau de l'opération.

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

Remarques

Le TransactionFlowAttribute est un attribut utilisé de manière déclarative pour associer une stratégie de flux de transaction spécifique à une opération de service. La propriété TransactionFlowOption de cet attribut spécifie si l'opération respective accepte une transaction provenant du client ou si l'opération exige que le client transmette en permanence une transaction. Le TransactionFlowAttribute peut également être employé comme un comportement d'opération permettant d'associer par programme une stratégie de flux de transaction à une opération spécifique. Dans ce cas, il doit être ajouté à la collection sur la Behaviors description de l’opération.

Notes

Le OperationContract de chaque méthode qui utilise le TransactionFlowAttribute doit fournir une chaîne Action complète. La valeur "*" n'est pas prise en charge.

Constructeurs

TransactionFlowAttribute(TransactionFlowOption)

Initialise une nouvelle instance de la classe TransactionFlowAttribute.

Propriétés

Transactions

Obtient une valeur qui indique si la transaction entrante est prise en charge.

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Ajoute des paramètres supplémentaires au contexte de liaison pour prendre en charge le comportement de cette opération. Cette méthode ne peut pas être héritée.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Associe les fonctionnalités d'attribut à l'objet ProxyOperation pour la méthode marquée par l'attribut. Cette méthode ne peut pas être héritée.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Associe les fonctionnalités d'attribut à l'objet DispatchOperation pour la méthode marquée par l'attribut. Cette méthode ne peut pas être héritée.

IOperationBehavior.Validate(OperationDescription)

Vérifie que l'opération permet la prise en charge de ce comportement. Cette méthode ne peut pas être héritée.

S’applique à

Voir aussi