Classe Store

O armazenamento contém uma representação em memória dos elementos e links em um ou mais modelos.

Hierarquia de herança

System.Object
  Microsoft.VisualStudio.Modeling.Store

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

Sintaxe

'Declaração
Public Class Store _
    Implements IServiceProvider, IDisposable
public class Store : IServiceProvider, IDisposable

O tipo Store expõe os membros a seguir.

Construtores

  Nome Descrição
Método público Store(array<Type[]) Inicializa uma nova instância da classe Store.
Método público Store(IServiceProvider, array<Type[]) Inicializa uma nova instância da classe Store.
Método público Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Cria uma instância da classe de armazenamento que delega a implementação IServiceProvider para o serviceProvider fornecido.

Superior

Propriedades

  Nome Descrição
Propriedade pública ChangeSource Obtém a fonte de alteração atual para operações no armazenamento.
Propriedade pública CurrentContext Obtém o contexto atual do armazenamento.
Propriedade pública DefaultPartition Obtém ou define a partição padrão para o armazenamento.
Propriedade pública DemandLoading Obtém se o armazenamento está sendo carregando uma relação de demanda.
Propriedade pública Disposed Obtém se o armazenamento foi descartado.
Propriedade pública DomainDataDirectory Obtém o diretório de informações de domínio do armazenamento.
Propriedade pública DomainModels Obtém uma coleção de modelos de domínio nesse armazenamento.
Propriedade pública ElementDirectory Obtém o diretório de elementos contidos no armazenamento.
Propriedade pública ElementFactory Obtém a fábrica de elemento para o modelo.
Propriedade pública EventManagerDirectory Obtém o diretório do Gerenciador de eventos para o modelo.
Propriedade pública Id Obtém a ID do armazenamento.
Propriedade pública InRedo Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo refeito.
Propriedade pública InSerializationTransaction Indica que o armazenamento tem uma transação de serialização ativa no momento da pilha de transação
Propriedade pública InUndo Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo desfeito.
Propriedade pública InUndoRedoOrRollback Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo refeito, desfeita ou revertido volta.
Propriedade pública Partitions Obtém os objetos de coleção de partição para o armazenamento.
Propriedade pública PartitionsAlternate Obtém as partições usadas no armazenamento.
Propriedade pública PropertyBag Obtém o conjunto de propriedades para o armazenamento.
Propriedade pública RuleManager Obtém o Gerenciador de regras para o armazenamento.
Propriedade pública SerializerDirectory O diretório de serialização padrão para este armazenamento
Propriedade pública ShuttingDown Obtém o armazenamento e verifica se o armazenamento está sendo desligado ou define o estado do armazenamento como desligar.
Propriedade pública TransactionActive Obtém ou define se o armazenamento tem uma transação ativa no momento.
Propriedade pública TransactionLogs Obtém a lista atual dos logs de transação para o armazenamento.
Propriedade pública TransactionManager Obtém o Gerenciador de transações para o modelo.
Propriedade pública UndoManager Obtém o UndoManager para o contexto padrão.
Propriedade pública Version Obtém a versão do armazenamento.

Superior

Métodos

  Nome Descrição
Método público AddMonikerResolver Registrar um IMonikerResolver para o modelo de domínio especificado.
Método público DefaultPartitionForClass Retorne a partição na qual os novos elementos da classe especificada devem ser criados por padrão.
Método público Dispose Descarta o armazenamento.
Método público Equals Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.)
Método público FindDomainModel Localiza um modelo de domínio, por sua identificação.
Método público FindMonikerResolver Localiza o IMonikerResolver registrado para o modelo de domínio especificado.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Cria um protótipo de grupo do elemento na partição padrão do tipo determinado de fechamento, se uma lista dos elementos raiz for especificada.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Cria um protótipo de grupo do elemento na partição padrão do tipo especificado de fechamento quando é fornecida uma lista de elementos raiz e permite ignorando de carregamento de demanda.
Método público GetDomainModel(Guid) Obtém uma instância de um modelo de domínio, por sua identificação.
Método público GetDomainModel<T>() Obtém uma instância de um tipo de modelo de domínio especificado.
Método público GetHashCode Serve como uma função de hash para um tipo específico. (Herdado de Object.)
Método público GetService Obtém um serviço.
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público LoadDomainModels Cria todos os dados para a lista especificada de modelos de domínio.
Método protegido MemberwiseClone Cria uma cópia superficial de Objectatual. (Herdado de Object.)
Método público PopContext Remove o contexto atual da parte superior da pilha.
Método público PushContext Envia um novo contexto para o topo da pilha de contexto de armazenamento.
Método público RegisterTransactionLog Permite que um cliente registrar um log de transações que será notificado de eventos neste armazenamento.
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)
Método público UnregisterTransactionLog Permite que um cliente cancelar o registro de um log de transações não serão notificados de eventos neste armazenamento.

Superior

Eventos

  Nome Descrição
Evento público StoreDisposing Ocorre quando o armazenamento é descartar.

Superior

Métodos de extensão

  Nome Descrição
Método de extensão público GetLocks Obter os sinalizadores de bloqueio para essa instância do armazenamento (Definido por ImmutabilityExtensionMethods.)
Método de extensão público IsLocked Testar se esse armazenamento tem qualquer conjunto especificado de bloqueios (Definido por ImmutabilityExtensionMethods.)
Método de extensão público SetLocks Definir os sinalizadores de bloqueio desta instância de armazenamento (Definido por ImmutabilityExtensionMethods.)

Superior

Comentários

O armazenamento contém informações sobre um ou mais modelos.Um repositório pode conter uma coleção de modelos, embora freqüentemente há apenas um modelo no armazenamento.

O armazenamento também contém metadados sobre um modelo e informações sobre as instâncias dos elementos e links entre os elementos que formam esse modelo.Os metadados contêm os tipos permitidos no modelo e suas relações.

O armazenamento tem diversas estruturas de dados que são preenchidas quando um modelo é carregado para o armazenamento.Isso ocorre nas seguintes circunstâncias:

  • Quando sua linguagem específica de domínio é iniciada, ou como uma compilação experimental

  • Quando você tiver implantado sua linguagem específica de domínio e um usuário final é iniciado

  • Quando você carrega um modelo por meio de programação para o armazenamento

O DomainDataDirectory contém os metadados sobre os tipos que pode ser no modelo.

O ElementDirectory contém informações sobre cada instância do elemento e seus links.(As ocorrências na ElementDirectory deve ser de tipos definidos na DomainDataDirectory.)

Do armazenamento, você pode navegar para itens individuais no armazenamento.Você pode obter informações sobre os elementos ou tipos.Você também pode fazer as seguintes tarefas:

  • Adicionar itens

  • Excluir itens

  • modificar os elementos existentes e links e suas propriedades

Sempre que você modifica um armazenamento, você deverá colocar qualquer código que grava o armazenamento em um Transaction.Você pode cancelar todas as alterações feitas em uma transação usando métodos práticos no armazenamento de um Rollback da transação ou não fazendo uma Commit da transação.

O armazenamento tem um RuleManager que contém a funcionalidade para inscrever-se em regras.Também pode se inscrever o armazenamento de eventos.

O armazenamento também tem um UndoManager que tem membros que permitem a você desfazer e refazer alterações no armazenamento.Você geralmente é necessário que criar uma nova instância de uma loja, embora você possa e pode ler um modelo para ele pelo desserialização de um modelo para a nova instância.Em geral, você obtém acesso ao armazenamento da Store a propriedade de um elemento ou link no modelo.Os argumentos do evento de regras e eventos fornecem a instância do elemento ou um link que diz respeito a regra ou o evento, e você pode usar sua propriedade de armazenamento para acessar o armazenamento e seu TransactionManager.

Exemplos

Os exemplos a seguir mostram diferentes maneiras de criar uma instância de um armazenamento.Quando há dependências entre os modelos de domínio, como no terceiro exemplo que se segue, os modelos de domínio devem ser especificados na ordem de dependência.

// Create a store with your domain models (classes in the generated 
// code derived from Microsoft.VisualStudio.Modeling.DomainModel).
Store store = new Store(typeof(ActivityDomainModel));

// Domain models can be loaded into the store after construction.
// Be sure to call store.Dispose() when you are done with it. 
Store store2 = new Store();
Store2.LoadDomainModels(typeof(ActivityDomainModel));

// Multiple domain models can be loaded into the store at once
Store store3 = new Store(typeof(BaseActivityDomainModel), typeof(ExtendedActivityDomainModel));

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

Outros recursos

[redirecionar] Modelo de domínio na API gerado

How to: Create Elements in Code

How to: Create Elements in Code

How to: Create Links in Code

How to: Set or Get Domain Property Values

How to: Delete Elements and Links Programmatically

How to: Undo and Redo Changes Made to the Store