TransactionFlowAttribute Classe

Definição

Especifica se uma operação de serviço aceita transações recebidas de um cliente.

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
Herança
TransactionFlowAttribute
Atributos
Implementações

Exemplos

O seguinte exemplo de código mostra o uso desta enumeração juntamente com a TransactionFlowOption classe ao nível da operação.

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

Observações

É TransactionFlowAttribute um atributo usado declarativamente para associar uma política específica de fluxo de transações a uma operação de serviço. A TransactionFlowOption propriedade deste atributo especifica se a respetiva operação aceita uma transação fluído pelo cliente, ou se a operação exige que o cliente flua sempre uma transação. Pode TransactionFlowAttribute também ser usado como comportamento operacional para associar programaticamente uma política de fluxo de transações a uma operação específica. Neste caso, deve ser adicionado à Behaviors coleção na descrição da operação.

Note

Para OperationContract cada método que utiliza o TransactionFlowAttribute deve fornecer uma cadeia totalmente qualificada Action . Um valor de "*" não é suportado.

Construtores

Name Description
TransactionFlowAttribute(TransactionFlowOption)

Inicializa uma nova instância da TransactionFlowAttribute classe.

Propriedades

Name Description
Transactions

Recebe um valor que indica se a transação recebida é suportada.

TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Adiciona parâmetros extra (definições) ao contexto de ligação para suportar o comportamento desta operação. Este método não pode ser herdado.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Anexa a funcionalidade do atributo ao ProxyOperation objeto para o método que o atributo marca. Este método não pode ser herdado.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Anexa a funcionalidade do atributo ao DispatchOperation objeto para o método que o atributo marca. Este método não pode ser herdado.

IOperationBehavior.Validate(OperationDescription)

Verifica se a operação pode suportar este comportamento. Este método não pode ser herdado.

Aplica-se a

Ver também