Condividi tramite


Classe Store

L'archivio contenente una rappresentazione in memoria degli elementi e dei collegamenti in uno o più modelli.

Gerarchia di ereditarietà

System.Object
  Microsoft.VisualStudio.Modeling.Store

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

Sintassi

'Dichiarazione
Public Class Store _
    Implements IServiceProvider, IDisposable
public class Store : IServiceProvider, IDisposable

Il tipo Store espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico Store(array<Type[]) Inizializza una nuova istanza di Store classe.
Metodo pubblico Store(IServiceProvider, array<Type[]) Inizializza una nuova istanza di Store classe.
Metodo pubblico Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Crea un'istanza della classe di archiviazione che delega l'implementazione di IServiceProvider il serviceProvider specificato.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica ChangeSource Ottiene il database di origine corrente di modifica per le operazioni nell'archivio.
Proprietà pubblica CurrentContext Ottiene il contesto corrente dell'archivio.
Proprietà pubblica DefaultPartition ottiene o imposta la partizione predefinita per l'archivio.
Proprietà pubblica DemandLoading Indica se l'archivio è attualmente richiesta che carica una relazione.
Proprietà pubblica Disposed Indica se l'archivio è stato eliminato.
Proprietà pubblica DomainDataDirectory Ottiene la directory di informazioni del dominio dell'archivio.
Proprietà pubblica DomainModels Ottiene una raccolta di modelli di dominio in questo archivio.
Proprietà pubblica ElementDirectory Ottiene la directory degli elementi contenuti all'interno dell'archivio.
Proprietà pubblica ElementFactory Ottiene la factory dell'elemento del modello.
Proprietà pubblica EventManagerDirectory Ottiene la directory del gestore di eventi per il modello.
Proprietà pubblica Id Ottiene l'ID dell'archivio.
Proprietà pubblica InRedo Ottiene l'archivio e verifica se il contesto corrente dell'archivio sta scorrendo.
Proprietà pubblica InSerializationTransaction Indica che l'archivio è attualmente un oggetto alla transazione attiva di serializzazione dello stack di transazione
Proprietà pubblica InUndo Ottiene l'archivio e verifica se il contesto corrente dell'archivio sia annullamento.
Proprietà pubblica InUndoRedoOrRollback Ottiene l'archivio e verifica se il contesto corrente dell'archivio sta scorrendo, annullando, o stia utilizzando il postback.
Proprietà pubblica Partitions Ottiene la raccolta di oggetti della partizione per l'archivio.
Proprietà pubblica PartitionsAlternate Ottiene le partizioni utilizzate nell'archivio.
Proprietà pubblica PropertyBag ottiene il contenitore di proprietà per l'archivio.
Proprietà pubblica RuleManager Ottiene la gestione regole per l'archivio.
Proprietà pubblica SerializerDirectory la directory predefinita di serializzazione per questo archivio
Proprietà pubblica ShuttingDown Ottiene l'archivio e verifica se l'archivio sia in fase di chiusura, o imposta lo stato dell'archivio come interrompendo.
Proprietà pubblica TransactionActive Ottiene o imposta se l'archivio ha attualmente un oggetto alla transazione attiva.
Proprietà pubblica TransactionLogs Ottiene l'elenco corrente dei log delle transazioni per l'archivio.
Proprietà pubblica TransactionManager Ottiene il gestore delle transazioni per il modello.
Proprietà pubblica UndoManager ottiene UndoManager per il contesto predefinito.
Proprietà pubblica Version Ottiene la versione dell'archivio.

In alto

Metodi

  Nome Descrizione
Metodo pubblico AddMonikerResolver registrare IMonikerResolver per il modello di dominio specificato.
Metodo pubblico DefaultPartitionForClass Restituire la partizione in cui i nuovi elementi della classe specificata devono essere creati per impostazione predefinita.
Metodo pubblico Dispose elimina l'archivio.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico FindDomainModel Cerca un modello di dominio in base all'ID.
Metodo pubblico FindMonikerResolver cerca IMonikerResolver registrato per il modello di dominio specificato.
Metodo pubblico GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Crea un prototipo del gruppo dell'elemento della partizione predefinita del tipo di chiusura specificato se un elenco di elementi radice è specificato.
Metodo pubblico GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Crea un prototipo del gruppo dell'elemento della partizione predefinita del tipo di chiusura specificata una volta fornito un elenco di elementi radice e consente di ignorare il caricamento della domanda.
Metodo pubblico GetDomainModel(Guid) Ottiene un'istanza di un modello di dominio in base all'ID.
Metodo pubblico GetDomainModel<T>() Ottiene un'istanza di un tipo specificato il modello di dominio.
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetService ottiene un servizio.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico LoadDomainModels Creazione di tutti i dati del dominio per l'elenco specificato dei modelli di dominio.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico PopContext Rimuove il contesto corrente dalla parte superiore dello stack.
Metodo pubblico PushContext Inserisce un nuovo contesto in cima allo stack di contesto nell'archivio.
Metodo pubblico RegisterTransactionLog Consente a un client accede un log delle transazioni che verrà notifica degli eventi nell'archivio.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico UnregisterTransactionLog Consente a un client di annullare la registrazione di un log delle transazioni dalla comunicazione degli eventi nell'archivio.

In alto

Eventi

  Nome Descrizione
Evento pubblico StoreDisposing Si verifica quando l'archivio viene eliminato.

In alto

Metodi di estensione

  Nome Descrizione
Metodo di estensione pubblico GetLocks Ottenere i flag di blocco per questa istanza dell'archivio (Definito da ImmutabilityExtensionMethods).
Metodo di estensione pubblico IsLocked Test se questo archivio di qualsiasi di un set specificato di blocchi (Definito da ImmutabilityExtensionMethods).
Metodo di estensione pubblico SetLocks Impostare i flag del blocco di questa istanza dell'archivio (Definito da ImmutabilityExtensionMethods).

In alto

Note

L'archivio contiene informazioni su uno o più modelli.Un archivio può contenere una raccolta di modelli, sebbene spesso esista un modello nell'archivio.

L'archivio contiene inoltre metadati su un modello e informazioni sulle istanze degli elementi e dei collegamenti tra elementi che costituiscono tale modello.I metadati contengono i tipi consentiti nel modello e relative relazioni.

L'archivio include diverse strutture di dati che vengono compilate quando viene caricato un modello nell'archivio.Ciò si verifica nelle circostanze seguenti:

  • quando il linguaggio specifico di dominio viene avviato, o come compilazione sperimentale

  • quando si implementa il linguaggio specifico di dominio e avvia di un utente finale

  • quando si carica un modello a livello di codice nell'archivio

DomainDataDirectory contiene i metadati sui tipi può essere nel modello.

ElementDirectory contiene informazioni su ogni istanza di un elemento e i relativi collegamenti.(Le istanze in ElementDirectory deve essere dei tipi definiti in DomainDataDirectory).

Dall'archivio, è possibile passare ai singoli elementi nell'archivio.È possibile ottenere informazioni sugli elementi o i tipi.È anche possibile eseguire le attività seguenti:

  • aggiungere elementi

  • elementi di eliminazione

  • modificare gli elementi esistenti e collegamenti e le relative proprietà

Ogni volta che si modifica un archivio, è necessario racchiudere il codice che scrive in un archivio Transaction.È possibile annullare tutte le modifiche all'archivio eseguito in una transazione utilizzando un oggetto Rollback la transazione o di prestazioni a Commit la transazione.

L'archivio dispone di un oggetto RuleManager che contiene funzionalità per sottoscrivere le regole.L'archivio inoltre possibile sottoscrivere gli eventi.

L'archivio è inoltre disponibile UndoManager quale contiene membri che consentono di annullare e iterazioni le modifiche all'archivio.Non è necessario in genere creare una nuova istanza di un archivio, sebbene sia possibile e sia possibile leggere un modello in deserializzazione di un modello nella nuova istanza.Spesso, si otterrà l'accesso all'archivio da Store proprietà di un elemento o un collegamento nel modello.Gli argomenti delle regole e degli eventi forniscono all'istanza del collegamento dell'elemento o in cui la regola o l'evento a ed è possibile utilizzare la proprietà dell'archivio per accedere all'archivio e proprio TransactionManager.

Esempi

Negli esempi seguenti vengono illustrati i diversi modi per creare un'istanza di un archivio.Quando esistono dipendenze tra i modelli di dominio, come nel terzo esempio che segue, i modelli di dominio devono essere specificati per dipendenza.

// 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));

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

Altre risorse

[reindirizzamento] Modello di dominio nell'API generata

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