TransactionFlowAttribute Clase

Definición

Especifica si una operación de servicio acepta transacciones entrantes de un 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
Herencia
TransactionFlowAttribute
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra el uso de esta enumeración junto con la TransactionFlowOption clase en el nivel de operación.

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

Comentarios

TransactionFlowAttribute es un atributo que se usa mediante declaración para asociar una directiva de flujo de transacción específica a una operación de servicio. La TransactionFlowOption propiedad de este atributo especifica si la operación respectiva acepta una transacción que fluye desde el cliente, o si la operación requiere que el cliente fluya siempre una transacción. TransactionFlowAttribute También se puede usar como comportamiento de operación para asociar mediante programación una directiva de flujo de transacciones a una operación específica. En este caso, se debe agregar a la Behaviors colección en la descripción de la operación.

Note

Para OperationContract cada método que use TransactionFlowAttribute debe proporcionar una cadena completa Action . No se admite un valor de "*".

Constructores

Nombre Description
TransactionFlowAttribute(TransactionFlowOption)

Inicializa una nueva instancia de la clase TransactionFlowAttribute.

Propiedades

Nombre Description
Transactions

Obtiene un valor que indica si se admite la transacción entrante.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Nombre Description
Equals(Object)

Devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

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

Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

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

Proporciona acceso a propiedades y métodos expuestos por un objeto .

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

Agrega parámetros adicionales (configuración) al contexto de enlace para admitir el comportamiento de esta operación. Este método no se puede heredar.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Asocia la funcionalidad de atributo al objeto para el ProxyOperation método que marca el atributo. Este método no se puede heredar.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Asocia la funcionalidad de atributo al objeto para el DispatchOperation método que marca el atributo. Este método no se puede heredar.

IOperationBehavior.Validate(OperationDescription)

Comprueba que la operación puede admitir este comportamiento. Este método no se puede heredar.

Se aplica a

Consulte también