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 | |
---|---|---|
![]() |
Store(array<Type[]) | Initialisiert eine neue Instanz der Store-Klasse. |
![]() |
Store(IServiceProvider, array<Type[]) | Initialisiert eine neue Instanz der Store-Klasse. |
![]() |
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 | |
---|---|---|
![]() |
ChangeSource | Ruft die aktuelle Änderung im Speicher für Vorgänge Quelle ab. |
![]() |
CurrentContext | Ruft den aktuellen Kontext des Speichers ab. |
![]() |
DefaultPartition | Ruft ab oder legt die Standardpartition für den Speicher fest. |
![]() |
DemandLoading | Ruft ab, ob der Speicher nur die Forderung ist, die eine Beziehung zu laden. |
![]() |
Disposed | Ruft ab, ob der Speicher freigegeben wurde. |
![]() |
DomainDataDirectory | Ruft Domänen Verzeichnis mit dem angegebenen Speicher ab. |
![]() |
DomainModels | Ruft eine Auflistung von Domänen modelle in diesem Speicher ab. |
![]() |
ElementDirectory | Ruft das Verzeichnis der Elemente ab, die im Speicher enthalten sind. |
![]() |
ElementFactory | Ruft die factory für das Modell ab. |
![]() |
EventManagerDirectory | Ruft den Ereignis-Manager Verzeichnis für das Modell ab. |
![]() |
Id | Ruft die ID des Speichers ab. |
![]() |
InRedo | Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers wiederholt wird. |
![]() |
InSerializationTransaction | Gibt an, dass der Speicher ist nur eine aktive Transaktion im stapel an Transaktion zum Bereitstellen |
![]() |
InUndo | Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers rückgängig gemacht wird. |
![]() |
InUndoRedoOrRollback | Ruft den Speicher abgerufen und überprüft, ob der aktuelle Kontext des Speichers auftritt, rückgängig gemacht oder Zurücksetzen wird. |
![]() |
Partitions | Ruft die Auflistung von Partitions Objekte für den Speicher ab. |
![]() |
PartitionsAlternate | Ruft die Partitionen ab, die im Speicher verwendet werden. |
![]() |
PropertyBag | Ruft die Eigenschaftensammlung für den Speicher ab. |
![]() |
RuleManager | Ruft den Regel Manager für den Speicher ab. |
![]() |
SerializerDirectory | Das Verzeichnis der Serialisierung Standardwert für diesen Speicher |
![]() |
ShuttingDown | Ruft den Speicher abgerufen und überprüft, ob der Speicher beendet wird, oder legt den Zustand des Arbeitsspeichers fest, wie abschaltend. |
![]() |
TransactionActive | Ruft einen Wert ab bzw. legt einen Speicher, ob der derzeit aktive Transaktion hat fest. |
![]() |
TransactionLogs | Ruft die aktuelle Liste von Transaktionsprotokollen für den Speicher ab. |
![]() |
TransactionManager | Ruft den Transaktions-Manager für das Modell ab. |
![]() |
UndoManager | Ruft UndoManager für den Standardkontext ab. |
![]() |
Version | Ruft die Version des Speichers ab. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
![]() |
AddMonikerResolver | Registrieren Sie IMonikerResolver für das angegebene Domänenmodell. |
![]() |
DefaultPartitionForClass | Geben Sie die Partition zurück, in die neue Elemente der angegebenen Klasse standardmäßig erstellt werden sollen. |
![]() |
Dispose | Gibt den Speicher entsperrt. |
![]() |
Equals | Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.) |
![]() |
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.) |
![]() |
FindDomainModel | Sucht ein Domänenmodell durch seine ID |
![]() |
FindMonikerResolver | Sucht IMonikerResolver , das für das angegebene Domänenmodell registriert ist. |
![]() |
GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) | Erstellt einen prototyp Elementgruppen in der Standardpartition Abschluss des angegebenen Typs, wenn eine Liste von Stammelementen angegeben wird. |
![]() |
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. |
![]() |
GetDomainModel(Guid) | Ruft eine Instanz eines Domänenmodells modells durch seine ID ab. |
![]() |
GetDomainModel<T>() | Ruft eine Instanz eines angegebenen Typs Domänenmodell ab. |
![]() |
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
![]() |
GetService | Ruft einen Dienst ab. |
![]() |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
![]() |
LoadDomainModels | Erstellt alle Domänen Testdaten für die angegebene Liste von Domänen modellen. |
![]() |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
![]() |
PopContext | Entfernt den aktuellen Kontext von der obersten Position des Stapels. |
![]() |
PushContext | Legt einen neuen Kontext am oberen Rand des stapels Elementkontext Speicher. |
![]() |
RegisterTransactionLog | Ermöglicht es einem Client, um ein Transaktionsprotokoll zu registrieren, das von Ereignissen in diesem Speicher benachrichtigt wird. |
![]() |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
![]() |
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 | |
---|---|---|
![]() |
StoreDisposing | Tritt ein, wenn der Speicher freigibt. |
Zum Seitenanfang
Erweiterungsmethoden
Name | Beschreibung | |
---|---|---|
![]() |
GetLocks | Rufen Sie die Sperren für diese Flags für die Instanz Speicher ab (Durch ImmutabilityExtensionMethods definiert.) |
![]() |
IsLocked | Hat der Test, ob dies eine Speicherung eines angegebenen Satzes von Sperren (Durch ImmutabilityExtensionMethods definiert.) |
![]() |
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: Set or Get Domain Property Values