System.Transactions Spazio dei nomi

Contiene classi che consentono di scrivere un gestore personalizzato di risorse e applicazioni transazionali. In particolare, è possibile creare una transazione (locale o distribuita) e prendervi parte con uno o più partecipanti.

Classi

CommittableTransaction

Descrive una transazione di cui è possibile eseguire il commit.

DependentTransaction

Descrive un duplicato di una transazione che garantisce che non può essere eseguito il commit della transazione fino a quando nell'applicazione non si completano le operazioni relative alla transazione. La classe non può essere ereditata.

DistributedTransactionPermission

Autorizzazione richiesta da System.Transactions durante l'escalation del livello di gestione di una transazione a MSDTC. La classe non può essere ereditata.

DistributedTransactionPermissionAttribute

Consente di applicare azioni di sicurezza per DistributedTransactionPermission al codice usando la sicurezza dichiarativa. La classe non può essere ereditata.

Enlistment

Facilita la comunicazione tra un partecipante alla transazione integrato e la gestione transazioni durante la fase finale della transazione.

PreparingEnlistment

Facilita la comunicazione tra un partecipante alla transazione integrato e la gestione transazioni durante la fase di preparazione della transazione.

SinglePhaseEnlistment

Fornisce un insieme di callback che facilitano la comunicazione tra un partecipante inserito nell'elenco per il commit a una fase e la gestione transazioni quando viene ricevuta la notifica di SinglePhaseCommit(SinglePhaseEnlistment).

SubordinateTransaction

Rappresenta una transazione che non contiene una radice che può essere delegata. La classe non può essere ereditata.

Transaction

Rappresenta una transazione.

TransactionAbortedException

Eccezione generata quando si è tentato di eseguire un'operazione in una transazione di cui è già stato eseguito il rollback oppure si è tentato di eseguire il commit della transazione e la transazione si interrompe.

TransactionEventArgs

Fornisce i dati per i seguenti eventi di transazione: DistributedTransactionStarted e TransactionCompleted.

TransactionException

Eccezione generata quando si tenta di operare in una transazione che non può accettare nuove operazioni.

TransactionInDoubtException

Eccezione generata quando viene tentata un'operazione su una transazione in dubbio oppure quando si tenta di eseguire il commit della transazione e questa diventa InDoubt.

TransactionInformation

Fornisce informazioni aggiuntive su una transazione.

TransactionInterop

Facilita l'interazione tra System.Transactions e i componenti che sono stati precedentemente scritti per interagire con MSDTC, COM+ o System.EnterpriseServices. La classe non può essere ereditata.

TransactionManager

Contiene i metodi utilizzati per la gestione delle transazioni. La classe non può essere ereditata.

TransactionManagerCommunicationException

Eccezione generata quando un gestore delle risorse non è in grado di comunicare con il gestore delle transazioni.

TransactionPromotionException

Eccezione generata quando una promozione ha esito negativo.

TransactionScope

Rende transazionale un blocco di codice. La classe non può essere ereditata.

Struct

TransactionOptions

Contiene informazioni aggiuntive che specificano i comportamenti di una transazione.

Interfacce

IDtcTransaction

Descrive una transazione DTC.

IEnlistmentNotification

Descrive un'interfaccia che un gestore di risorse deve implementare per fornire i callback di notifica commit a due fasi per la gestione delle transazioni in seguito all'integrazione per la partecipazione.

IPromotableSinglePhaseNotification

Descrive un oggetto che svolge la funzione di delegato di commit per una transazione non distribuita interna a una gestione risorse.

ISimpleTransactionSuperior

Rappresenta una transazione non di primo livello, ma di cui è possibile eseguire l'escalation per consentirne la gestione mediante MSDTC.

ISinglePhaseNotification

Descrive un oggetto risorsa che supporta l'ottimizzazione mediante commit monofase per partecipare a una transazione.

ITransactionPromoter

Descrive una transazione delegata di una transazione esistente di cui è possibile eseguire l'escalation per consentirne la gestione mediante MSDTC, se necessario.

Enumerazioni

DependentCloneOption

Determina il tipo di transazione dipendente da creare.

EnlistmentOptions

Determina se l'oggetto deve essere integrato durante la fase di preparazione.

EnterpriseServicesInteropOption

Specifica il modo in cui le transazioni distribuite interagiscono con le transazioni COM+.

IsolationLevel

Specifica il livello di isolamento di una transazione.

TransactionScopeAsyncFlowOption

Specifica se il flusso delle transazioni tra le continuazioni di thread è attivato per TransactionScope .

TransactionScopeOption

Fornisce opzioni aggiuntive per la creazione dell'ambito di una transazione.

TransactionStatus

Descrive lo stato corrente di una transazione distribuita.

Delegati

HostCurrentTransactionCallback

Fornisce un meccanismo affinché l'ambiente di hosting specifichi una propria nozione predefinita di Current.

TransactionCompletedEventHandler

Rappresenta il metodo che gestisce l'evento TransactionCompleted di una classe Transaction.

TransactionStartedEventHandler

Rappresenta il metodo che gestirà l'evento DistributedTransactionStarted di una classe TransactionManager.

Commenti

L' System.Transactions infrastruttura rende la programmazione transazionale semplice ed efficiente in tutta la piattaforma, supportando le transazioni avviate in SQL Server, ADO.NET, MSMQ e Microsoft Distributed Transaction Coordinator (MSDTC). Fornisce un modello di programmazione esplicito basato sulla Transaction classe, nonché un modello di programmazione implicito che utilizza la TransactionScope classe, in cui le transazioni vengono gestite automaticamente dall'infrastruttura. Si consiglia di utilizzare il modello implicito più semplice per lo sviluppo. Per iniziare, vedere l'argomento implementazione di una transazione implicita mediante ambito di transazione . Per ulteriori informazioni sulla scrittura di un'applicazione transazionale, vedere scrittura di un'applicazione transazionale.

System.Transactions fornisce inoltre i tipi per implementare un gestore di risorse. Il gestore delle transazioni nativo per l' System.Transactions infrastruttura consente di eseguire il commit o il rollback in modo efficiente delle risorse volatili o di un unico elenco di risorse durevoli. Per ulteriori informazioni sull'implementazione di un gestore di risorse, vedere implementazione di un gestione risorse.

Il gestore delle transazioni inoltra inoltre in modo trasparente le transazioni locali alle transazioni distribuite mediante il coordinamento tramite una gestione transazioni basata su disco come DTC, quando un gestore di risorse durevole aggiuntivo si integra con una transazione. Di base l'infrastruttura System.Transactions utilizza due meccanismi per ottimizzare le prestazioni:

  • Escalation dinamica, il che significa che l' System.Transactions infrastruttura attiva solo MSDTC quando è effettivamente necessaria per una transazione. Questa area è illustrata in dettaglio nell'argomento escalation della gestione delle transazioni .

  • PSPE, che consente a una risorsa, ad esempio un database, di assumere la proprietà della transazione se è l'unica entità a parteciparvi. In un secondo momento, se necessario, l' System.Transactions infrastruttura può ancora eseguire l'escalation della gestione della transazione a MSDTC. Ciò consente di ridurre ulteriormente le probabilità di utilizzo del gestore MSDTC. Questa area è analizzata in modo approfondito nell'argomento Ottimizzazione mediante commit a fase singola e notifica promuovibile a singola fase .

System.Transactions definisce tre livelli di attendibilità che limitano l'accesso ai tipi di risorse esposti. In particolare, l'assembly System. Transactions può essere chiamato da codice parzialmente attendibile perché è stato contrassegnato con l' AllowPartiallyTrustedCallers attributo (APTCA). Questo attributo sostanzialmente rimuove il flag implicito LinkDemand dal set di autorizzazioni FullTrust che altrimenti viene assegnato automaticamente a ogni metodo accessibile pubblicamente di ogni tipo. Tuttavia, alcuni tipi e membri richiedono comunque autorizzazioni di livello superiore.

Di seguito è riportato un elenco di tipi e membri che non possono essere richiamati da codice parzialmente attendibile perché sono decorati con l'attributo di sicurezza dichiarativo seguente:

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. reintegrate

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. TransactionOptions, System. Transactions. EnterpriseServicesInteropOption)

Per altre informazioni sui diversi livelli di attendibilità, vedere livelli di attendibilità per la sicurezza nell'accesso alle risorse.

Sviluppo principale Base\accesso ai dati\Elaborazione elaborazione \

Per ulteriori informazioni su come utilizzare lo System.Transactions spazio dei nomi, è possibile consultare la documentazione concettuale relativa all' elaborazione delle transazioni, disponibile nella sezione "elaborazione principale di ai dati\Elaborazione per lo sviluppo base\Accesso \ " nella documentazione di. In particolare, è possibile trovare altre informazioni negli argomenti seguenti.

Funzionalità fornite da System. Transactions

Implementazione di un gestore di risorse