Compartilhar via


Classe Transaction

Uma transação certifica-se de que as alterações feitas no armazenamento são tratadas como um grupo que pode ser confirmado ou revertido.

Hierarquia de herança

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

Namespace:  Microsoft.VisualStudio.Modeling
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Sintaxe

'Declaração
Public Class Transaction _
    Inherits MarshalByRefObject _
    Implements IDisposable
public class Transaction : MarshalByRefObject, 
    IDisposable

O tipo Transaction expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública Context Obtém a transação e permite que os clientes acrescentar os dados de usuário para a transação.
Propriedade pública ContextInstance Obtém o Context para esta transação.
Propriedade pública ForceAllRulesToCommitTime Obtém ou define um sinalizador que força todas as regras aninhadas para ocorrer em tempo de LocalCommit para a transação atual.
Propriedade pública HasPendingChanges Obtém a transação e verifica se foram feitas alterações no armazenamento durante esta transação.
Propriedade pública HaveCommitTimeRulesFired Indica se as regras de tempo de confirmação foi acionadas ou não
Propriedade pública Id Obtém a ID para esta transação.
Propriedade pública InRollback Obtém a transação e verifica se essa transação está sendo revertida.
Propriedade pública IsActive Obtém a transação e verifica se a transação está processando.
Propriedade pública IsHidden Obtém a transação e verifica se a transação está oculta.
Propriedade pública IsNested Obtém a transação e verifica se uma transação está aninhada dentro de outra transação.
Propriedade pública IsSerializing Obtém a transação e verifica se a transação no momento é serializar.
Propriedade pública Name Obtém ou define o nome da transação.
Propriedade pública Parent Obtém a transação de nível superior que é atribuída à transação aninhada.
Propriedade pública PartitionStates Obtém informações sobre o estado de todas as partições no armazenamento.
Propriedade pública SequenceNumber Obtém o número de seqüência para a transação.
Propriedade pública Store Obtém o armazenamento ao qual a transação pertence.
Propriedade pública TopLevelTransaction Obtém a transação de nível superior da hierarquia de transação.
Propriedade pública TransactionDepth Obtém o número de transações em que esta transação está aninhada.

Superior

Métodos

  Nome Descrição
Método público Commit Confirma a transação.
Método público CreateObjRef Segurança crítica. Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject.)
Método público Dispose Descarta o estado da transação.
Método público Equals Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegido Finalize Finaliza a transação. (Substitui Object.Finalize().)
Método público GetHashCode Serve como uma função de hash para um tipo específico. (Herdado de Object.)
Método público GetLifetimeService Segurança crítica. Recupera o objeto de serviço Vida útil atual que controla a diretiva vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público InitializeLifetimeService Segurança crítica. Obtém um objeto de serviço de tempo de vida para controlar a diretiva vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método protegido MemberwiseClone() Cria uma cópia superficial de Objectatual. (Herdado de Object.)
Método protegido MemberwiseClone(Boolean) Cria uma cópia superficial do atual MarshalByRefObject objeto. (Herdado de MarshalByRefObject.)
Método público Rollback O armazenamento voltarão ao estado em que ele se encontrava quando a transação foi criada.
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)

Superior

Métodos de extensão

  Nome Descrição
Método de extensão público GetSerializationContext Obtenha a SerializationContext ativa no contexto da transação especificado.O SerializationContext é armazenado na TranactionContext da serialização de transações.Se a transação está aninhada a pilha de transação é pesquisada para localizar o delimitador mais próximo transação de serialização com um SerializationContext. (Definido por SerializationContextTransactionExtensions.)

Superior

Comentários

Uma transação permite alterações do grupo.Ele também mantém registro de ações que são executadas em uma transação, para que eles podem ser desfeitos em um estágio posterior.

As alterações para o armazenamento devem ser feitas em uma transação.Alterações no armazenamento são feitas somente se a transação for confirmada.Uma transação pode ter o armazenamento de aceitar as alterações quando a transação local é confirmada ou quando a transação de nível superior é confirmada.Transações locais são aninhadas em uma transação de nível superior.Uma transação aninhada deve confirmar ou reverter novamente antes da próxima transação de nível superior pode confirmar ou reverter.Para obter mais informações, consulte o exemplo para o TransactionDepth propriedade.

Também uma transação que mantém registro de ações que ocorreram.Isso permite que um grupo de ações a ser desfeita ou refeita em um estágio posterior com o UndoManager propriedade.

Uma transação deve ser descartada.Isso pode ser feito usando o Dispose método ou criando a transação em um Using construir.Se a transação não foi confirmada quando ele é descartado, a transação automaticamente será revertida e todas as alterações serão canceladas.

Exemplos

O exemplo a seguir mostra uma transação que modifica o armazenamento.A transação é confirmada.Se a transação é revertida, quaisquer alterações no armazenamento serão canceladas.A transação é descartada automaticamente no final do using bloco.

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();
}

Para obter mais informações e exemplos, consulte Using Transactions.

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Modeling