Share via


Transazioni automatiche e classi .NET Framework

Le istanze di una classe .NET Framework possono partecipare a una transazione automatica se la classe viene appositamente preparata. Ogni risorsa cui accede un'istanza di una classe o un oggetto viene inserita nella transazione. Se, ad esempio, un oggetto utilizza ADO.NET per accreditare denaro su un conto in un database, il gestore delle risorse del database determinerà se tale oggetto può essere eseguito in una transazione. In caso positivo l'impiego del database nella transazione avverrà automaticamente.

Per fare in modo che un oggetto partecipi a una transazione, applicare l'attributo TransactionAttribute alla relativa classe. Per l'applicazione dell'attributo Transaction, è possibile utilizzare Transaction, transaction, TransactionAttribute e transactionattribute in modo intercambiabile.

La procedura per preparare una classe alla partecipazione in una transazione automatica viene illustrata dettagliatamente in Procedura: utilizzare le transazioni automatiche in una classe .NET Framework.

L'attributo Transaction utilizza un costruttore che accetta un'enumerazione TransactionOption come parametro. Nella tabella seguente vengono descritti i possibili valori dell'enumerazione TransactionOption.

Valore dell'attributo Descrizione

Disabled

Elimina il controllo delle transazioni automatiche sull'oggetto. Un oggetto a cui è applicato questo valore di attributo può connettersi direttamente a Distributed Transaction Coordinator (DTC) per il supporto transazionale.

[Transaction(TransactionOption.Disabled)]

NotSupported

Indica che l'oggetto non viene eseguito nell'ambito di una transazione. Quando una richiesta viene elaborata, il corrispondente contesto dell'oggetto viene creato senza transazione, indipendentemente dal fatto che esista una transazione attiva.

[Transaction(TransactionOption.NotSupported)]

Supported

Indica che l'oggetto viene eseguito nel contesto di una transazione esistente. Se non è in corso alcuna transazione, l'oggetto verrà eseguito senza transazioni.

[Transaction(TransactionOption.Supported)]

Required

(valore predefinito)

Indica che l'oggetto richiede una transazione. Viene eseguito nell'ambito di una transazione esistente. Se non è in corso alcuna transazione, l'oggetto ne avvierà una.

[Transaction(TransactionOption.Required)]

RequiresNew

Indica che l'oggetto richiede una transazione e che viene avviata una nuova transazione per ogni richiesta.

[Transaction(TransactionOption.RequiresNew)]

Vedere anche

Attività

Procedura: utilizzare le transazioni automatiche in una classe .NET Framework

Concetti

Opzioni di voto nelle transazioni automatiche

Altre risorse

Scrittura dei componenti serviti

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.