Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

TransactionFlowAttribute (Clase)

Especifica si una operación de servicio acepta las transacciones entrantes de un cliente.

System.Object
  System.Attribute
    System.ServiceModel.TransactionFlowAttribute

Espacio de nombres:  System.ServiceModel
Ensamblado:  System.ServiceModel (en System.ServiceModel.dll)

[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class TransactionFlowAttribute : Attribute, 
	IOperationBehavior

El tipo TransactionFlowAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoTransactionFlowAttributeInicializa una nueva instancia de la clase TransactionFlowAttribute.
Arriba

  NombreDescripción
Propiedad públicaTransactionsObtiene un valor que indica si se admite la transacción entrante.
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

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

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privadoIOperationBehavior.AddBindingParametersAgrega parámetros adicionales (valores) al contexto de enlace para admitir el comportamiento de esta operación. Este método no puede heredarse.
Implementación explícita de interfacesMétodo privadoIOperationBehavior.ApplyClientBehaviorAsocia la funcionalidad del atributo al objeto ProxyOperation para el método que marca el atributo. Este método no puede heredarse.
Implementación explícita de interfacesMétodo privadoIOperationBehavior.ApplyDispatchBehaviorAsocia la funcionalidad del atributo al objeto DispatchOperation para el método que marca el atributo. Este método no puede heredarse.
Implementación explícita de interfacesMétodo privadoIOperationBehavior.ValidateComprueba que la operación puede admitir este comportamiento. Este método no puede heredarse.
Arriba

TransactionFlowAttribute es un atributo utilizado mediante declaración para asociar una directiva de flujo de transacción concreta a una operación del servicio. La propiedad TransactionFlowOption de este atributo especifica si la operación respectiva acepta una transacción que ha fluido del cliente o si la operación exige al cliente que fluya siempre una transacción. TransactionFlowAttribute también se puede utilizar como comportamiento de la operación para asociar mediante programación una directiva de flujo de transacción a una operación concreta. En este caso, se debería agregar a la colección Behaviors en la descripción de la operación.

NotaNota

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

El ejemplo de código siguiente muestra el uso de esta enumeración junto con la clase TransactionFlowOption en el nivel de la 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."
      );
    }
  }
}

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft