Compartir a través de


Transacciones automáticas y clases de .NET Framework

Las instancias de una clase de .NET Framework pueden participar en una transacción automática mientras se prepara la clase para ello. Cada recurso al que ha obtenido acceso una instancia de clase, o un objeto, se inscribe en la transacción. Por ejemplo, si un objeto utiliza ADO.NET para enviar dinero a una cuenta de una base de datos, el administrador de recursos para la base de datos determina si el objeto se debe ejecutar en una transacción. En caso afirmativo, inscribe automáticamente la base de datos en la transacción.

Para que un objeto participe en una transacción, aplique el atributo TransactionAttribute a su clase. Al aplicar el atributo Transaction, puede usar Transaction, transaction, TransactionAttribute y transactionattribute indistintamente.

El procedimiento para preparar una clase para que participe en una transacción automática se detalla en Cómo usar transacciones automáticas en una clase de .NET Framework.

El atributo Transaction utiliza un constructor que toma una enumeración TransactionOption como parámetro. En la tabla siguiente se detallan los posibles valores de la enumeración TransactionOption.

Valor de atributo Descripción

Disabled

Elimina el control de transacciones automáticas en el objeto. Un objeto que tenga aplicado este valor de atributo puede conectar directamente con el Coordinador de transacciones distribuidas (DTC) para obtener soporte transaccional.

[Transaction(TransactionOption.Disabled)]

NotSupported

Indica que el objeto no se ejecute dentro del ámbito de una transacción. Cuando se procesa una solicitud, se crea su contexto de objeto sin una transacción, independientemente de que haya una transacción activa.

[Transaction(TransactionOption.NotSupported)]

Supported

Indica que el objeto se ejecute en el contexto de una transacción existente, si existe alguna. Si no existen transacciones, el objeto se ejecuta sin una transacción.

[Transaction(TransactionOption.Supported)]

Required

(predeterminado)

Indica que el objeto requiere una transacción. Se ejecuta en el ámbito de una transacción existente, si existe alguna. Si no existen transacciones, el objeto inicia una transacción.

[Transaction(TransactionOption.Required)]

RequiresNew

Indica que el objeto requiere una transacción y se inicia una transacción nueva para cada solicitud.

[Transaction(TransactionOption.RequiresNew)]

Consulte también

Tareas

Cómo usar transacciones automáticas en una clase de .NET Framework

Conceptos

Votación en una transacción automática

Otros recursos

Escribir componentes con servicio

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.