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 | |
---|---|---|
Store(array<Type[]) | Inicializa uma nova instância da classe Store. | |
Store(IServiceProvider, array<Type[]) | Inicializa uma nova instância da classe Store. | |
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 | |
---|---|---|
ChangeSource | Obtém a fonte de alteração atual para operações no armazenamento. | |
CurrentContext | Obtém o contexto atual do armazenamento. | |
DefaultPartition | Obtém ou define a partição padrão para o armazenamento. | |
DemandLoading | Obtém se o armazenamento está sendo carregando uma relação de demanda. | |
Disposed | Obtém se o armazenamento foi descartado. | |
DomainDataDirectory | Obtém o diretório de informações de domínio do armazenamento. | |
DomainModels | Obtém uma coleção de modelos de domínio nesse armazenamento. | |
ElementDirectory | Obtém o diretório de elementos contidos no armazenamento. | |
ElementFactory | Obtém a fábrica de elemento para o modelo. | |
EventManagerDirectory | Obtém o diretório do Gerenciador de eventos para o modelo. | |
Id | Obtém a ID do armazenamento. | |
InRedo | Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo refeito. | |
InSerializationTransaction | Indica que o armazenamento tem uma transação de serialização ativa no momento da pilha de transação | |
InUndo | Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo desfeito. | |
InUndoRedoOrRollback | Obtém o armazenamento e verifica se o contexto atual do armazenamento está sendo refeito, desfeita ou revertido volta. | |
Partitions | Obtém os objetos de coleção de partição para o armazenamento. | |
PartitionsAlternate | Obtém as partições usadas no armazenamento. | |
PropertyBag | Obtém o conjunto de propriedades para o armazenamento. | |
RuleManager | Obtém o Gerenciador de regras para o armazenamento. | |
SerializerDirectory | O diretório de serialização padrão para este armazenamento | |
ShuttingDown | Obtém o armazenamento e verifica se o armazenamento está sendo desligado ou define o estado do armazenamento como desligar. | |
TransactionActive | Obtém ou define se o armazenamento tem uma transação ativa no momento. | |
TransactionLogs | Obtém a lista atual dos logs de transação para o armazenamento. | |
TransactionManager | Obtém o Gerenciador de transações para o modelo. | |
UndoManager | Obtém o UndoManager para o contexto padrão. | |
Version | Obtém a versão do armazenamento. |
Superior
Métodos
Nome | Descrição | |
---|---|---|
AddMonikerResolver | Registrar um IMonikerResolver para o modelo de domínio especificado. | |
DefaultPartitionForClass | Retorne a partição na qual os novos elementos da classe especificada devem ser criados por padrão. | |
Dispose | Descarta o armazenamento. | |
Equals | Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.) | |
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.) | |
FindDomainModel | Localiza um modelo de domínio, por sua identificação. | |
FindMonikerResolver | Localiza o IMonikerResolver registrado para o modelo de domínio especificado. | |
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. | |
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. | |
GetDomainModel(Guid) | Obtém uma instância de um modelo de domínio, por sua identificação. | |
GetDomainModel<T>() | Obtém uma instância de um tipo de modelo de domínio especificado. | |
GetHashCode | Serve como uma função de hash para um tipo específico. (Herdado de Object.) | |
GetService | Obtém um serviço. | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
LoadDomainModels | Cria todos os dados para a lista especificada de modelos de domínio. | |
MemberwiseClone | Cria uma cópia superficial de Objectatual. (Herdado de Object.) | |
PopContext | Remove o contexto atual da parte superior da pilha. | |
PushContext | Envia um novo contexto para o topo da pilha de contexto de armazenamento. | |
RegisterTransactionLog | Permite que um cliente registrar um log de transações que será notificado de eventos neste armazenamento. | |
ToString | Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.) | |
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 | |
---|---|---|
StoreDisposing | Ocorre quando o armazenamento é descartar. |
Superior
Métodos de extensão
Nome | Descrição | |
---|---|---|
GetLocks | Obter os sinalizadores de bloqueio para essa instância do armazenamento (Definido por ImmutabilityExtensionMethods.) | |
IsLocked | Testar se esse armazenamento tem qualquer conjunto especificado de bloqueios (Definido por ImmutabilityExtensionMethods.) | |
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: Set or Get Domain Property Values