Freigeben über


Store-Klasse

Der Speicher enthält eine speicherinterne Darstellung der Elemente und Links in einem oder mehreren Modellen.

Vererbungshierarchie

System.Object
  Microsoft.VisualStudio.Modeling.Store

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

Syntax

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

Der Store-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode Store(array<Type[]) Initialisiert eine neue Instanz der Store-Klasse.
Öffentliche Methode Store(IServiceProvider, array<Type[]) Initialisiert eine neue Instanz der Store-Klasse.
Öffentliche Methode Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Erstellt eine Instanz der Speicher IServiceProvider-Implementierung Klasse, die den angegebenen Diensterbringer delegiert.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft ChangeSource Ruft die aktuelle Änderung im Speicher für Vorgänge Quelle ab.
Öffentliche Eigenschaft CurrentContext Ruft den aktuellen Kontext des Speichers ab.
Öffentliche Eigenschaft DefaultPartition Ruft ab oder legt die Standardpartition für den Speicher fest.
Öffentliche Eigenschaft DemandLoading Ruft ab, ob der Speicher nur die Forderung ist, die eine Beziehung zu laden.
Öffentliche Eigenschaft Disposed Ruft ab, ob der Speicher freigegeben wurde.
Öffentliche Eigenschaft DomainDataDirectory Ruft Domänen Verzeichnis mit dem angegebenen Speicher ab.
Öffentliche Eigenschaft DomainModels Ruft eine Auflistung von Domänen modelle in diesem Speicher ab.
Öffentliche Eigenschaft ElementDirectory Ruft das Verzeichnis der Elemente ab, die im Speicher enthalten sind.
Öffentliche Eigenschaft ElementFactory Ruft die factory für das Modell ab.
Öffentliche Eigenschaft EventManagerDirectory Ruft den Ereignis-Manager Verzeichnis für das Modell ab.
Öffentliche Eigenschaft Id Ruft die ID des Speichers ab.
Öffentliche Eigenschaft InRedo Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers wiederholt wird.
Öffentliche Eigenschaft InSerializationTransaction Gibt an, dass der Speicher ist nur eine aktive Transaktion im stapel an Transaktion zum Bereitstellen
Öffentliche Eigenschaft InUndo Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers rückgängig gemacht wird.
Öffentliche Eigenschaft InUndoRedoOrRollback Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers auftritt, rückgängig gemacht oder Zurücksetzen wird.
Öffentliche Eigenschaft Partitions Ruft die Auflistung von Partitions Objekte für den Speicher ab.
Öffentliche Eigenschaft PartitionsAlternate Ruft die Partitionen ab, die im Speicher verwendet werden.
Öffentliche Eigenschaft PropertyBag Ruft die Eigenschaftensammlung für den Speicher ab.
Öffentliche Eigenschaft RuleManager Ruft den Regel Manager für den Speicher ab.
Öffentliche Eigenschaft SerializerDirectory Das Verzeichnis der Serialisierung Standardwert für diesen Speicher
Öffentliche Eigenschaft ShuttingDown Ruft den Speicher abgerufen und überprüft, ob der Speicher beendet wird, oder legt den Zustand des Arbeitsspeichers fest, wie abschaltend.
Öffentliche Eigenschaft TransactionActive Ruft einen Wert ab bzw. legt einen Speicher, ob der derzeit aktive Transaktion hat fest.
Öffentliche Eigenschaft TransactionLogs Ruft die aktuelle Liste von Transaktionsprotokollen für den Speicher ab.
Öffentliche Eigenschaft TransactionManager Ruft den Transaktions-Manager für das Modell ab.
Öffentliche Eigenschaft UndoManager Ruft UndoManager für den Standardkontext ab.
Öffentliche Eigenschaft Version Ruft die Version des Speichers ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode AddMonikerResolver Registrieren Sie IMonikerResolver für das angegebene Domänenmodell.
Öffentliche Methode DefaultPartitionForClass Geben Sie die Partition zurück, in die neue Elemente der angegebenen Klasse standardmäßig erstellt werden sollen.
Öffentliche Methode Dispose Gibt den Speicher entsperrt.
Öffentliche Methode Equals Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche Methode FindDomainModel Sucht ein Domänenmodell durch seine ID
Öffentliche Methode FindMonikerResolver Sucht IMonikerResolver , das für das angegebene Domänenmodell registriert ist.
Öffentliche Methode GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Erstellt einen prototyp Elementgruppen in der Standardpartition Abschluss des angegebenen Typs, wenn eine Liste von Stammelementen angegeben wird.
Öffentliche Methode GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Erstellt einen prototyp Elementgruppen in der Standardpartition Abschluss des angegebenen Typs, sofern eine Liste von Stammelementen. Dadurch kann die Umgehung des Forderung ladens.
Öffentliche Methode GetDomainModel(Guid) Ruft eine Instanz eines Domänenmodells modells durch seine ID ab.
Öffentliche Methode GetDomainModel<T>() Ruft eine Instanz eines angegebenen Typs Domänenmodell ab.
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetService Ruft einen Dienst ab.
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode LoadDomainModels Erstellt alle Domänen Testdaten für die angegebene Liste von Domänen modellen.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode PopContext Entfernt den aktuellen Kontext von der obersten Position des Stapels.
Öffentliche Methode PushContext Legt einen neuen Kontext am oberen Rand des stapels Elementkontext Speicher.
Öffentliche Methode RegisterTransactionLog Ermöglicht es einem Client, um ein Transaktionsprotokoll zu registrieren, das von Ereignissen in diesem Speicher benachrichtigt wird.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode UnregisterTransactionLog Ermöglicht es einem Client, um ein Transaktionsprotokoll von Ereignissen in diesem Speicher benachrichtigt werden, deren Registrierung aufgehoben werden soll.

Zum Seitenanfang

Ereignisse

  Name Beschreibung
Öffentliches Ereignis StoreDisposing Tritt ein, wenn der Speicher freigibt.

Zum Seitenanfang

Erweiterungsmethoden

  Name Beschreibung
Öffentliche Erweiterungsmethode GetLocks Rufen Sie die Sperren für diese Flags für die Instanz Speicher ab (Durch ImmutabilityExtensionMethods definiert.)
Öffentliche Erweiterungsmethode IsLocked Hat der Test, ob dies eine Speicherung eines angegebenen Satzes von Sperren (Durch ImmutabilityExtensionMethods definiert.)
Öffentliche Erweiterungsmethode SetLocks Legen Sie die Sperren dieser Flags für die Instanz Speicher fest (Durch ImmutabilityExtensionMethods definiert.)

Zum Seitenanfang

Hinweise

Der Speicher enthält Informationen über eine oder mehrere Modelle.Ein Speicher kann eine Auflistung von Modellen enthalten, obwohl häufig nur ein Modell im Speicher vorhanden ist.

Der Speicher enthält auch Metadaten zum Modell und Informationen über die Instanzen der Elemente und Links zwischen Elementen mit diesem Modell besteht.Metadaten enthält die Typen, die im Modell und ihre Beziehungen zulässig sind.

Der Speicher verfügt über mehrere Datenstrukturen, die gefüllt werden, wenn ein Modell in den Speicher geladen wird.Dies tritt unter den folgenden Bedingungen auf:

  • Wenn die domänenspezifische Sprache gestartet wird, entweder als experimentelle Build

  • wenn Sie bereitgestellt haben, startet die domänenspezifische Sprache und ein Endbenutzer es

  • Programmgesteuertes Wenn Sie ein Modell in den Speicher laden

DomainDataDirectory enthält die Metadaten zu den Typen, die im Modell werden können.

ElementDirectory enthält Informationen zu jeder Elementinstanz und die zugehörigen Links.(Die Instanzen in ElementDirectory müssen Typen sein, die in DomainDataDirectory) definiert sind.

Aus Speicher können Sie auf die einzelnen Elemente im Speicher navigieren.Sie können Informationen über Typen oder Elemente abrufen.Sie können auch die folgenden Aufgaben ausführen:

  • fügen Sie Elemente hinzu

  • Löschen von Elementen

  • Ändern von vorhandenen Elementen und Links und deren Eigenschaften

Jedes Mal, wenn Sie einen Speicher geändert haben, müssen Sie jeden beliebigen Code einfügen, der Transactionin den Speicher geschrieben wird.Sie können alle Änderungen im Speicher abbrechen, der in einer Transaktion erfolgt, indem Sie Rollback der Transaktion ausführen, oder indem Sie nicht Commit der Transaktion ausführen.

Auf den Speicher hat, RuleManager-Funktionen enthält, die den Regeln zu abonnieren.Der Speicher kann auch Ereignisse abonnieren.

Der Speicher verfügt auch über UndoManager , der Member hat, mit denen Sie Änderungen im Speicher zu überprüfen und rückgängig zu machen.Sie müssen im Allgemeinen eine neue Instanz eines Speichers erstellt werden, obwohl Sie ein Modell in diese lesen können. Außerdem können, indem Sie ein Modell in die neue Instanz deserialisieren.Häufig erhalten Sie Zugriff auf den Speicher mit der Store-Eigenschaft eines Elements oder eines Links im Modell ab.Die Ereignisargumente von Regeln und Ereignissen bieten die Element- oder Link oder die Regel Instanz, die das Ereignis bezieht. Sie können die Eigenschaft Speicher verwenden, um die Speicherung und das TransactionManagerzuzugreifen.

Beispiele

In den folgenden Beispielen werden verschiedene Möglichkeiten gezeigt, einen Speicher zu instanziieren.Wenn Abhängigkeiten zwischen Domänen vorhanden sind, z. B. von Modellen, im dritten folgende Beispiel die Domänen modelle in der Reihenfolge der Abhängigkeit angegeben werden sollen.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.Modeling-Namespace

Weitere Ressourcen

[umleiten] Domänenmodell in der generierten API

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