System.Transactions Espacio de nombres

Contiene clases que permiten escribir un administrador de recursos y una aplicación transaccional propios. Concretamente, se puede crear y participar en una transacción (local o distribuida) con uno o varios participantes.

Clases

CommittableTransaction

Describe una transacción confirmable.

DependentTransaction

Describe un clon de una transacción y garantiza que no se puede confirmar la transacción hasta que la aplicación no deja de procesar la transacción. Esta clase no puede heredarse.

DistributedTransactionPermission

Permiso que System.Transactions solicita cuando la administración de una transacción se dirige al Coordinador de transacción distribuida de Microsoft (MS DTC). Esta clase no puede heredarse.

DistributedTransactionPermissionAttribute

Permite acciones de seguridad de DistributedTransactionPermission para que se apliquen al código mediante seguridad declarativa. Esta clase no puede heredarse.

Enlistment

Facilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase final de la transacción.

PreparingEnlistment

Facilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase de preparación de la transacción.

SinglePhaseEnlistment

Proporciona un conjunto de devoluciones de llamada que facilitan la comunicación entre un participante inscrito en la confirmación en una fase y el administrador de transacciones cuando se recibe la notificación SinglePhaseCommit(SinglePhaseEnlistment).

SubordinateTransaction

Representa una transacción que no es raíz y que puede delegarse. Esta clase no puede heredarse.

Transaction

Representa una transacción.

TransactionAbortedException

La excepción que se produce cuando se intenta una operación en una transacción que ya se ha deshecho o se intenta confirmar la transacción y se anula la transacción.

TransactionEventArgs

Proporciona los datos para los eventos de transacción siguientes: DistributedTransactionStarted, TransactionCompleted.

TransactionException

La excepción que se produce cuando intenta trabajar en una transacción que no puede aceptar el nuevo trabajo.

TransactionInDoubtException

La excepción que se produce cuando se intenta una operación en una transacción que está en duda o se intenta confirmar la transacción y ésta pasa al estado de en duda.

TransactionInformation

Proporciona información adicional respecto a una transacción.

TransactionInterop

Facilita la interacción entre System.Transactions y componentes que se han escrito previamente para interactuar con MSDTC, COM+ o System.EnterpriseServices. Esta clase no puede heredarse.

TransactionManager

Contiene métodos utilizados para la administración de transacciones. Esta clase no puede heredarse.

TransactionManagerCommunicationException

La excepción que se produce cuando un administrador de recursos no puede comunicar con el administrador de transacciones.

TransactionPromotionException

La excepción que se produce cuando hay un error en una promoción.

TransactionScope

Crea un bloque de código transaccional. Esta clase no puede heredarse.

Estructuras

TransactionOptions

Contiene información adicional que especifica los comportamientos de la transacción.

Interfaces

IDtcTransaction

Describe una transacción DTC.

IEnlistmentNotification

Describe una interfaz que un administrador de recursos debe implementar para proporcionar devoluciones de llamada de notificación de confirmación en dos fases para el administrador de transacciones al inscribirse para la participación.

IPromotableSinglePhaseNotification

Describe un objeto que actúa como un delegado de confirmación para una transacción no distribuida interna a un administrador de recursos.

ISimpleTransactionSuperior

Representa una transacción que no es una transacción raíz, pero se puede escalar para que sea administrado por MSDTC.

ISinglePhaseNotification

Describe un objeto de recurso que admite la optimización de confirmación de fase única para participar en una transacción.

ITransactionPromoter

Describe una transacción delegada para una transacción existente que se puede elevar para ser administrada por MSDTC cuando se necesita.

Enumeraciones

DependentCloneOption

Controla qué tipo de transacción dependiente se va a crear.

EnlistmentOptions

Determina si el objeto se debería inscribir durante la fase de preparación.

EnterpriseServicesInteropOption

Especifica cómo interactúan las transacciones distribuidas con transacciones COM+.

IsolationLevel

Especifica el nivel de aislamiento de una transacción.

TransactionScopeAsyncFlowOption

Especifica si el flujo de la transacción a través de las continuaciones de subproceso está habilitado para TransactionScope.

TransactionScopeOption

Proporciona opciones adicionales para crear un ámbito de la transacción.

TransactionStatus

Describe el estado actual de una transacción distribuida.

Delegados

HostCurrentTransactionCallback

Proporciona un mecanismo para el entorno de host para proporcionar su propia noción predeterminada de Current.

TransactionCompletedEventHandler

Representa el método que controla el evento TransactionCompleted de Transaction.

TransactionStartedEventHandler

Representa el método que controlará el evento DistributedTransactionStarted de una clase TransactionManager.

Comentarios

La System.Transactions infraestructura hace que la programación transaccional sea sencilla y eficaz a lo largo de la plataforma, ya que admite las transacciones iniciadas en SQL Server, ADO.net, MSMQ y el Coordinador de transacciones distribuidas de Microsoft (MSDTC). Proporciona un modelo de programación explícito basado en la Transaction clase, así como un modelo de programación implícito utilizando la TransactionScope clase, en el que la infraestructura administra automáticamente las transacciones. Se recomienda encarecidamente que use el modelo implícito más sencillo para el desarrollo. Para empezar, consulte el tema implementación de una transacción implícita mediante el ámbito de la transacción. Para obtener más información sobre cómo escribir una aplicación transaccional, vea escribir una aplicación transaccional.

System.Transactions también proporciona tipos para implementar un administrador de recursos. El administrador de transacciones nativo para la System.Transactions infraestructura permite que los recursos volátiles o una inscripción de recursos duraderos únicos se confirmen o se reviertan de forma eficaz. Para obtener más información sobre cómo implementar un administrador de recursos, consulte implementación de un administrador de recursos.

El administrador de transacciones también escala de forma transparente las transacciones locales a las transacciones distribuidas mediante la coordinación a través de un administrador de transacciones basado en disco como el DTC, cuando un administrador de recursos duradero adicional se da de alta con una transacción. La infraestructura System.Transactions proporciona un rendimiento mejorado principalmente de dos formas:

  • Escalado dinámico, lo que significa que la System.Transactions infraestructura solo interactúa con MSDTC cuando realmente es necesario para una transacción. Esta área se trata en profundidad en el tema sobre consultas de administración de transacciones .

  • Inscripciones de ascenso, que permiten que un recurso, como una base de datos, asuma la propiedad de la transacción si es la única entidad que participa en la transacción. Más adelante, si es necesario, la System.Transactions infraestructura puede seguir escalando la administración de la transacción a MSDTC. Esto reduce aún más la oportunidad de utilizar MSDTC. Esta área se trata en profundidad en el tema de notificación optimización mediante confirmación en una sola fase y de una fase de promoción .

System.Transactions define tres niveles de confianza que restringen el acceso a los tipos de recursos que expone. En concreto, el código de confianza parcial puede llamar al ensamblado System. Transactions , ya que se ha marcado con el AllowPartiallyTrustedCallers atributo (APTCA). Este atributo básicamente quita el valor LinkDemand implícito para el permiso FullTrust establecido que, por otra parte, se coloca automáticamente en cada método público accesible de cada tipo. Sin embargo, algunos tipos y miembros siguen necesitando permisos más firmes.

A continuación se muestra una lista de tipos y miembros a los que no se puede llamar mediante código de confianza parcial porque se representan con el siguiente atributo de seguridad declarativo:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System. Transactions. Transaction. EnlistDurable

System. Transactions. Transaction. EnlistPromotableSinglePhase

System. Transactions. TransactionInterop

System. Transactions. TransactionManager. DistributedTransactionStarted

System. Transactions. TransactionManager. HostCurrentTransactionCallback

System. Transactions. TransactionManager. relist

System. Transactions. TransactionManager. RecoveryComplete

System. Transactions. TransactionScope. TransactionScope (System. Transactions. Transaction, System. TimeSpan, System. Transactions. EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope (System. Transactions. TransactionScopeOption, System. Transactions. Propiedadtransactionoptions, System. Transactions. EnterpriseServicesInteropOption)

Para obtener más información sobre los distintos niveles de confianza, vea niveles de confianza de seguridad en el acceso a recursos.

Desarrollo de núcleos Technologies\Data Access\Transaction Processing \

Para obtener más información sobre cómo usar el System.Transactions espacio de nombres, puede consultar el procesamiento de transaccionesde documentación conceptual, que se encuentra en la sección "Core Development Technologies\Data Access\Transaction Processing \ " en la documentación de. En concreto, puede encontrar más información en los temas siguientes.

Características proporcionadas por System. Transactions

Implementar un administrador de recursos