Condividi tramite


Classe Transaction

Una transazione garantisce che le modifiche apportate all'archivio siano considerate come gruppo su cui può essere eseguito il commit o il rollback.

Gerarchia di ereditarietà

System.Object
  System.MarshalByRefObject
    Microsoft.VisualStudio.Modeling.Transaction

Spazio dei nomi:  Microsoft.VisualStudio.Modeling
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Sintassi

'Dichiarazione
Public Class Transaction _
    Inherits MarshalByRefObject _
    Implements IDisposable
public class Transaction : MarshalByRefObject, 
    IDisposable

Il tipo Transaction espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica Context Ottiene la transazione e consente ai client di aggiungere dati utente alla transazione.
Proprietà pubblica ContextInstance Ottiene Context per questa transazione.
Proprietà pubblica ForceAllRulesToCommitTime Ottiene o imposta un flag che impone a tutte le regole annidate di verificarsi in fase di LocalCommit per la transazione corrente.
Proprietà pubblica HasPendingChanges Ottiene la transazione e verifica se sono state effettuate modifiche all'archivio durante questa transazione.
Proprietà pubblica HaveCommitTimeRulesFired Indica se le regole relative al tempo di commit sono state generate o meno
Proprietà pubblica Id Ottiene l'ID univoco di questa transazione.
Proprietà pubblica InRollback Ottiene la transazione e verifica se questa transazione è sottoposta a rollback.
Proprietà pubblica IsActive Ottiene la transazione e verifica se questa transazione è in elaborazione.
Proprietà pubblica IsHidden Ottiene la transazione e verifica se la transazione è nascosta.
Proprietà pubblica IsNested Ottiene la transazione e verifica se una transazione è annidata in un'altra transazione.
Proprietà pubblica IsSerializing Ottiene la transazione e verifica se la transazione sta eseguendo la serializzazione.
Proprietà pubblica Name Ottiene o imposta il nome di questa transazione.
Proprietà pubblica Parent Ottiene la transazione di livello superiore assegnata alla transazione annidata.
Proprietà pubblica PartitionStates Ottiene le informazioni sullo stato di tutte le partizioni dell'archivio.
Proprietà pubblica SequenceNumber Ottiene il numero di sequenza per la transazione.
Proprietà pubblica Store Ottiene l'archivio a cui appartiene la transazione.
Proprietà pubblica TopLevelTransaction Ottiene la transazione di livello superiore della gerarchia delle transazioni.
Proprietà pubblica TransactionDepth Ottiene il numero di transazioni nelle quali questa transazione è annidata.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Commit Consente di eseguire il commit della transazione.
Metodo pubblico CreateObjRef Critico per la sicurezza. Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject)
Metodo pubblico Dispose Elimina lo stato della transazione.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Finalizza la transazione. (Esegue l'override di Object.Finalize()).
Metodo pubblico GetHashCode Funge da funzione hash predefinita. (Ereditato da Object)
Metodo pubblico GetLifetimeService Critico per la sicurezza. Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico InitializeLifetimeService Critico per la sicurezza. Consente di ottenere un oggetto servizio di durata per il controllo dei criteri di durata per l'istanza. (Ereditato da MarshalByRefObject)
Metodo protetto MemberwiseClone() Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone(Boolean) Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject)
Metodo pubblico Rollback L'archivio verrà reimpostato sullo stato in cui si trovava al momento della creazione della transazione.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Metodi di estensione

  Nome Descrizione
Metodo di estensione pubblico GetSerializationContext Ottiene il SerializationContext attivo nel contesto della transazione specificata.L'oggetto SerializationContext viene archiviato nell'oggetto TranactionContext della transazioni di serializzazione.Se la transazione è annidata, viene cercato lo stack di transazione per trovare la transazione di serializzazione di inclusione più vicina con un oggetto SerializationContext. (Definito da SerializationContextTransactionExtensions).

In alto

Note

Una transazione consente di raggruppare le modifiche. Anche tiene traccia delle azioni eseguite in una transazione in modo da poter annullare anche in fase più avanzata.

Le modifiche all'archivio devono essere effettuate in una transazione. Le modifiche all'archivio vengono effettuate solo se il commit della transazione. Una transazione può accettare l'archivio le modifiche quando la transazione locale viene eseguito il commit o quando la transazione di primo livello viene eseguito il commit. Le transazioni locali sono annidate in una transazione di primo livello. Una transazione annidata deve eseguire il commit o il ripristino prima della transazione di primo livello successivo possa eseguire il commit o il ripristino. Per ulteriori informazioni, vedere l'esempio fornito per la proprietà TransactionDepth.

Una transazione anche tiene traccia delle azioni eseguite. Ciò consente a un gruppo di operazioni essere annullato o in fase ripetutoe più avanzata con la proprietà UndoManager.

Una transazione deve essere eliminato. Questa operazione può essere eseguita utilizzando il metodo Dispose o creando una transazione in un costrutto Using. Se la transazione non è stato eseguito il commit quando viene eliminato, la transazione viene automaticamente ripristinata e le modifiche verranno annullate.

Esempi

Nell'esempio seguente viene illustrata una transazione di modifica dell'archivio. La transazione viene eseguito il commit. Se la transazione viene ripristinata, tutte le modifiche all'archivio vengono annullate. La transazione viene eliminato automaticamente alla fine del blocco using.

using (Transaction txCreateElem =  model.Store.TransactionManager.BeginTransaction("Create named element")
{
  A a = new A(store);
  a.Name = "Fred";
  // Commit the transaction and add the named element to the model
  txCreateElem.Commit();
}

Per ulteriori informazioni ed esempi, vedere Using Transactions.

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling