Partager via


Store, classe

Le magasin contient une représentation en mémoire des éléments et des liens dans un ou plusieurs modèles.

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Modeling.Store

Espace de noms :  Microsoft.VisualStudio.Modeling
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Syntaxe

'Déclaration
Public Class Store _
    Implements IServiceProvider, IDisposable
public class Store : IServiceProvider, IDisposable

Le type Store expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique Store(array<Type[]) Initialise une nouvelle instance de la classe Store.
Méthode publique Store(IServiceProvider, array<Type[]) Initialise une nouvelle instance de la classe Store.
Méthode publique Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Crée une instance de la classe Store qui délègue l'implémentation d'IServiceProvider au Serviceprovider donné.

Début

Propriétés

  Nom Description
Propriété publique ChangeSource Obtient la source de modification actuelle pour les opérations du magasin.
Propriété publique CurrentContext Obtient le contexte actuel du magasin.
Propriété publique DefaultPartition Obtient ou définit la partition par défaut pour le magasin.
Propriété publique DemandLoading Obtient une valeur indiquant si le magasin est actuellement en chargement à la demande d'une relation.
Propriété publique Disposed Obtient une valeur indiquant si le magasin a été supprimé.
Propriété publique DomainDataDirectory Obtient le répertoire d'informations de domaine du magasin.
Propriété publique DomainModels Obtient une collection de modèles de domaine dans ce magasin.
Propriété publique ElementDirectory Obtient le répertoire des éléments contenus dans le magasin.
Propriété publique ElementFactory Obtient la fabrique d'éléments pour le modèle.
Propriété publique EventManagerDirectory Obtient le répertoire du gestionnaire d'événements pour le modèle.
Propriété publique Id Obtient l'ID du magasin.
Propriété publique InRedo Obtient le magasin et vérifie si le contexte actuel du magasin est rétabli.
Propriété publique InSerializationTransaction Indique que le magasin dispose d'une transaction de sérialisation actuellement active dans la pile de transaction
Propriété publique InUndo Obtient le magasin et vérifie si le contexte actuel du magasin est annulé.
Propriété publique InUndoRedoOrRollback Obtient le magasin et vérifie si le contexte actuel du magasin est rétabli, annulé, ou restauré.
Propriété publique Partitions Obtient la collection d'objets Partition pour le magasin.
Propriété publique PartitionsAlternate Obtient les partitions utilisées dans le magasin.
Propriété publique PropertyBag Obtient le conteneur de propriétés pour le magasin.
Propriété publique RuleManager Obtient le gestionnaire de règles pour le magasin.
Propriété publique SerializerDirectory Répertoire de sérialisation par défaut pour ce magasin
Propriété publique ShuttingDown Obtient le magasin et vérifie si le magasin s'arrête, ou définit l'état du magasin en cours d'arrêt.
Propriété publique TransactionActive Obtient ou définit une valeur indiquant si le magasin dispose actuellement d'une transaction active.
Propriété publique TransactionLogs Obtient la liste actuelle des journaux de transactions pour le magasin.
Propriété publique TransactionManager Obtient le gestionnaire de transactions pour le modèle.
Propriété publique UndoManager Obtient le UndoManager pour le contexte par défaut.
Propriété publique Version Obtient la version du magasin.

Début

Méthodes

  Nom Description
Méthode publique AddMonikerResolver Enregistre un IMonikerResolver pour le modèle de domaine spécifié.
Méthode publique DefaultPartitionForClass Retourne la partition dans laquelle de nouveaux éléments de la classe spécifiée doivent être créés par défaut.
Méthode publique Dispose Supprime le magasin.
Méthode publique Equals Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique FindDomainModel Recherche un modèle de domaine par son ID.
Méthode publique FindMonikerResolver Recherche IMonikerResolver enregistré pour le modèle de domaine spécifié.
Méthode publique GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Crée un prototype de groupe d'éléments dans la partition par défaut du type de fermeture donné si une liste d'éléments racines est spécifiée.
Méthode publique GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Crée un prototype de groupe d'éléments dans la partition par défaut du type de fermeture spécifié en fonction d'une liste d'éléments racines et permet d'ignorer le chargement de demande.
Méthode publique GetDomainModel(Guid) Obtient une instance d'un modèle de domaine par son ID.
Méthode publique GetDomainModel<T>() Obtient une instance d'un type de modèle de domaine spécifié.
Méthode publique GetHashCode Sert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publique GetService Obtient un service.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique LoadDomainModels Crée toutes les données de domaine pour la liste de modèles de domaine spécifiée.
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique PopContext Supprime le contexte actuel du haut de la pile.
Méthode publique PushContext Exécute un push sur un nouveau contexte pour l'envoyer en haut de la pile de contexte du magasin.
Méthode publique RegisterTransactionLog Permet à un client d'enregistrer un journal de transactions qui sera notifié des événements sur ce magasin.
Méthode publique ToString Retourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publique UnregisterTransactionLog Permet à un client d'annuler l'enregistrement d'un journal de transactions recevant les notifications à propos des événements sur ce magasin.

Début

Événements

  Nom Description
Événement public StoreDisposing Se produit lorsque le magasin est en cours de suppression.

Début

Méthodes d'extension

  Nom Description
Méthode d'extension publique GetLocks Obtient les indicateurs de verrou de cette instance de magasin. (Défini par ImmutabilityExtensionMethods.)
Méthode d'extension publique IsLocked Teste si ce magasin possède l'un des jeux de verrous spécifiés (Défini par ImmutabilityExtensionMethods.)
Méthode d'extension publique SetLocks Définit les indicateurs de verrou de cette instance Store (Défini par ImmutabilityExtensionMethods.)

Début

Notes

Magasin contient des informations sur un ou plusieurs modèles. Une banque peut contenir une collection de modèles, même si souvent qu'un seul modèle dans le magasin.

Magasin contient également les métadonnées d'un modèle et des informations sur les instances des éléments et des liens entre les éléments qui composent ce modèle. Les métadonnées contiennent des types autorisés dans le modèle et leurs relations.

Magasin a plusieurs structures de données qui sont remplies lorsqu'un modèle est chargé dans le magasin. Ceci se produit dans les circonstances suivantes :

  • lorsque le langage de spécifiques au domaine est lancé, soit comme génération expérimentale

  • lorsque vous avez déployé votre langage de spécifiques au domaine et lance d'un utilisateur final il

  • lorsque vous chargez un programme de modèle dans le magasin

DomainDataDirectory contient des métadonnées sur les types autorisés soient au modèle.

ElementDirectory contient des informations sur chaque instance de l'élément et leurs liens. (Les instances dans ElementDirectory doivent être de types définis dans DomainDataDirectory.)

Du magasin, vous pouvez accéder aux éléments individuels dans le magasin. Vous pouvez obtenir des informations sur les éléments de type ou. Vous pouvez également effectuer les tâches suivantes :

  • ajouter des éléments

  • supprimez des éléments

  • modifier des éléments existants et les liens et leurs propriétés

Lorsque vous modifiez un magasin, vous devez placer tout code qui écrit dans le magasin de Transaction. Vous pouvez annuler toutes les modifications apportées au magasin effectuée à partir d'une transaction en faisant Rollback de la transaction ou en ne faisant pas Commit de la transaction.

Magasin a RuleManager qui contient la fonctionnalité de s'abonner aux règles. La banque peut également s'abonner aux événements.

Magasin a également UndoManager qui contient les membres qui vous permettent d'annuler et rétablir des modifications dans le magasin. En général vous ne devez pas créer une instance d'un magasin, bien que vous puissiez et pouvoir lire un modèle dans est en désérialisant un modèle dans la nouvelle instance. Souvent, vous obtenez l'accès à la banque de la propriété d'Store d'un élément ou d'un lien dans le modèle. Arguments d'événement des règles et des événements fournissent l'instance de l'élément ou de lien laquelle la règle ou l'événement lignes, et vous pouvez utiliser la propriété de magasin pour accéder au magasin et son TransactionManager.

Exemples

Les exemples suivants montrent différentes manières d'instancier un magasin. Lorsqu'il existe des dépendances entre le champ modèle, comme dans le troisième exemple qui suit, les modèles de domaine doivent être spécifiés par ordre de dépendance.

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Modeling, espace de noms

Autres ressources

[redirection] Modèle de domaine de l'API générée

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