Partager via


ICommandExtension, interface

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

Espace de noms :  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.11.0 (dans Microsoft.VisualStudio.Modeling.Sdk.11.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 Le nom visible qui identifie cette commande dans le menu.

Début

Méthodes

  Nom Description
Méthode publique Execute Appelé lorsque l'utilisateur clique sur cette commande dans le menu.
Méthode publique QueryStatus Implémentez cette opération pour définir si votre commande doit être visible et active.Commande set. Visible et commande. Actif.Ne modifiez pas l'état du modèle.

Début

Notes

Pour définir une commande de menu pour un diagramme UML, vous pouvez implémenter cette interface dans une extension de Visual Studio.Dans l'extension.manifest, votre assembly doit être identifié en tant que composant MEF.Vous devez préfixer votre classe avec un attribut export :

[Export(typeof(ICommandExtension))]

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

[ClassDesignerExtension]

Définissez la commande comme classe public :

public class NameSwapper : ICommandExtension {

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

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

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

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

Si votre commande apportera plusieurs modifications au modèle, vous pouvez souhaiter les grouper ensemble dans une transaction unique, afin que vous puissiez abandonner le groupe entière s'il échoue, et afin que l'utilisateur puisse annuler le groupe entière avec une commande unique de phase de restauration.vous permet ILinkedUndoContext pour 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