Condividi tramite


Classe Store

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.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.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 della classe Store.
Metodo pubblico Store(IServiceProvider, array<Type[]) Inizializza una nuova istanza della classe Store.
Metodo pubblico Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Crea un'istanza della classe Store che delega l'implementazione di IServiceProvider al serviceProvider specificato.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica ChangeSource Ottiene l'origine della modifica corrente 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 Ottiene se l'archivio sta attualmente caricando su richiesta una relazione.
Proprietà pubblica Disposed Ottiene se l'archivio è stato eliminato.
Proprietà pubblica DomainDataDirectory Ottiene la directory delle informazioni di dominio dell'archivio.
Proprietà pubblica DomainModels Ottiene una raccolta di modelli di dominio in questo archivio.
Proprietà pubblica ElementDirectory Ottiene la directory di elementi contenuti all'interno dell'archivio.
Proprietà pubblica ElementFactory Ottiene la factory dell'elemento per il modello.
Proprietà pubblica EventManagerDirectory Ottiene la directory del gestore degli 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 è sottoposto a operazioni di ripetizione.
Proprietà pubblica InSerializationTransaction Indica che l'archivio ha una transazione di serializzazione correntemente attiva nello stack di transazione
Proprietà pubblica InUndo Ottiene l'archivio e verifica se il contesto corrente dell'archivio è sottoposto a operazioni di annullamento.
Proprietà pubblica InUndoRedoOrRollback Ottiene l'archivio e verifica se il contesto corrente dell'archivio è sottoposto a operazioni di ripetizione, annullamento o rollback.
Proprietà pubblica Partitions Ottiene la raccolta di oggetti Partition per l'archivio.
Proprietà pubblica PartitionsAlternate Ottiene le partizioni utilizzate nell'archivio.
Proprietà pubblica PropertyBag Ottiene il contenitore delle proprietà per l'archivio.
Proprietà pubblica RuleManager Ottiene il gestore delle regole per l'archivio.
Proprietà pubblica SerializerDirectory La directory di serializzazione predefinita per questo archivio
Proprietà pubblica ShuttingDown Ottiene l'archivio e verifica se l'archivio è in fase di chiusura oppure imposta lo stato dell'archivio come in chiusura.
Proprietà pubblica TransactionActive Ottiene o imposta se l'archivio dispone di una transazione attualmente 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 un oggetto IMonikerResolver per il modello di dominio specificato.
Metodo pubblico DefaultPartitionForClass Restituisce 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 Trova un modello di dominio mediante il relativo ID.
Metodo pubblico FindMonikerResolver Trova l'elemento IMonikerResolver registrato per il modello di dominio specificato.
Metodo pubblico GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Crea un prototipo del gruppo dell'elemento nella partizione predefinita del tipo di chiusura specificato se viene specificato un elenco di elementi radice.
Metodo pubblico GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Crea un prototipo del gruppo di elementi nella partizione predefinita del tipo di chiusura specificato se viene specificato un elenco di elementi radice e consente di ignorare il caricamento su richiesta.
Metodo pubblico GetDomainModel(Guid) Ottiene un'istanza di un modello di dominio in base al relativo ID.
Metodo pubblico GetDomainModel<T>() Ottiene un'istanza di un tipo di modello di dominio specificato.
Metodo pubblico GetHashCode Funge da funzione hash predefinita. (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 Crea 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 all'inizio dello stack di contesto dell'archivio.
Metodo pubblico RegisterTransactionLog Consente a un client di registrare un log delle transazioni a cui verrà inviata una 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 affinché non gli vengano più inviate notifiche degli eventi nell'archivio.

In alto

Eventi

  Nome Descrizione
Evento pubblico StoreDisposing Si verifica all'eliminazione dell'archivio.

In alto

Metodi di estensione

  Nome Descrizione
Metodo di estensione pubblico GetLocks Ottiene i flag di blocco per l'istanza di Store (Definito da ImmutabilityExtensionMethods).
Metodo di estensione pubblico IsLocked Verifica se l'archivio ha un set specificato di blocchi (Definito da ImmutabilityExtensionMethods).
Metodo di estensione pubblico SetLocks Impostare i contrassegni di blocco di questa istanza di Store (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 i metadati relativi a 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 dispone di molte strutture di dati che vengano rispettate quando viene caricato un modello nell'archivio. Ciò si verifica nelle seguenti circostanze:

  • quando il linguaggio specifico di dominio, viene attivato uno come compilazione sperimentale

  • dopo aver distribuito i il linguaggio specifico di dominio e avvio 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 devono essere tipi definiti in DomainDataDirectory).

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

  • aggiungere elementi

  • eliminare gli elementi

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

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

L'archivio è RuleManager che contiene funzionalità per sottoscrivere le regole. L'archivio è possibile sottoscrivere gli eventi.

L'archivio dispone anche di UndoManager con membri che consentono di annullare e iterazioni modifiche all'archivio. Non è in genere necessario creare una nuova istanza di un archivio, sebbene sia possibile e sia possibile leggere un modello in deserializzando un modello nella nuova istanza. Spesso, si otterrà l'accesso all'archivio dalla proprietà di Store di un elemento o un collegamento nel modello. Argomenti delle regole e degli eventi forniscono all'istanza di collegamento o dell'elemento cui la regola o l'evento riguarda ed è possibile utilizzare la proprietà dell'archivio per accedere all'archivio e il relativo TransactionManager.

Esempi

Negli esempi seguenti vengono illustrati 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