Partager via


ICommandExtension, interface

Implémentez et exportez cette interface d'une extension MEF pour fournir une commande de menu aux diagrammes de modélisation.

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

Syntaxe

'Déclaration
Public Interface ICommandExtension
public interface ICommandExtension

Le type ICommandExtension expose les membres suivants.

Propriétés

  Nom Description
Propriété publique Text Étiquette visible qui identifie cette commande dans le menu.

Début

Méthodes

  Nom Description
Méthode publique Execute Appelée lorsque l'utilisateur clique sur cette commande dans le menu.
Méthode publique QueryStatus Implémentez ceci pour définir si votre commande doit être visible et active.Définit command.Visible et command.Enabled.Ne modifie pas l'état du modèle.

Début

Notes

Pour définir une commande de menu pour un modèle d'UML, vous pouvez implémenter cette interface dans une extension d'Visual Studio. Dans l'extension.manifest, l'assembly doit être identifié en tant que composant de peut expéditionnaire des Marines. Vous devez préfixer la classe avec un attribut importation :

[Export(typeof(ICommandExtension))]

Vous devez également fournir un attribut pour chaque type de schéma sur lequel vous souhaitez la commande d'apparaître :

[ClassDesignerExtension]

Définissez la commande en tant que classe publique :

public class NameSwapper : ICommandExtension {

À l'intérieur de votre classe, vous devez importer IDiagramContext, pour vous permettre d'accéder au schéma actuel, en forme sélectionnées, des éléments de modèle, et le magasin de modèles :

[Import] public IDiagramContext Context { get; set; }

Vous pouvez également importer IServiceProvider, pour obtenir l'accès aux composants d'Visual Studio tels que l'explorateur de solutions :

[Import] public IServicerProvider ServiceProvider { get; set; }

Si votre commande apporte plusieurs modifications au modèle, vous pouvez les regrouper dans une transaction, afin que vous puissiez abandonne le groupe entière cas de échec, de façon à pouvoir annuler le groupe entière avec une seule commande de restauration. ILinkedUndoContext vous permet de créer une transaction :

[Import] public ILinkedUndoContext LinkedUndoContext {get; set;}

Pour plus d'informations, consultez Comment : définir une commande de menu sur un diagramme de modélisation.

Voir aussi

Référence

Microsoft.VisualStudio.Modeling.ExtensionEnablement, espace de noms