Condividi tramite


Interfaccia ICommandExtension

Implementare ed esportare questa interfaccia da un'estensione MEF per fornire un comando di menu per i diagrammi di modellazione.

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Sintassi

'Dichiarazione
Public Interface ICommandExtension
public interface ICommandExtension

Il tipo ICommandExtension espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica Text L'etichetta visibile che identifica questo comando nel menu.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Execute Richiamato quando l'utente sceglie questo comando dal menu.
Metodo pubblico QueryStatus Implementare questo per stabilire se il comando deve essere visibile e abilitato.Comando di. visibile e comando. attivato.Non modificare lo stato del modello.

In alto

Note

Per definire un comando di menu per un diagramma UML, è possibile implementare questa interfaccia in un oggetto Visual Studio estensione.In extension.manifest, l'assembly deve essere identificato come componente MEF.È necessario aggiungere la classe con un attributo di esportazione:

[Export(typeof(ICommandExtension))]

È inoltre necessario fornire un attributo per ogni tipo di diagramma in cui il comando venga visualizzato:

[ClassDesignerExtension]

definire il comando come classe pubblica:

public class NameSwapper : ICommandExtension {

Nella classe, è necessario importare IDiagramContext, per consentire la selezione per accedere al diagramma corrente, alle forme selezionate, elementi del modello e all'archivio modelli:

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

È anche possibile incorporare IServiceProvider, per ottenere accesso a Visual Studio componenti quali Esplora soluzioni:

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

Se il comando eseguirà diverse modifiche al modello, potrebbe essere necessario raggrupparli insieme in un'unica transazione, in modo che sia possibile annullare il gruppo di tutto si ne ha esito negativo e in modo da poter annullare l'utente l'intero gruppo con un unico comando di annullamento.ILinkedUndoContext consente di creare una transazione:

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

Per ulteriori informazioni, vedere Procedura: definire un comando di menu in un diagramma di modellazione.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling.ExtensionEnablement