Freigeben über


ICommandExtension-Schnittstelle

Implementieren und exportieren Sie diese Schnittstelle aus einer MEF-Erweiterung, um einen Menübefehl für die Modellierung von Diagrammen bereitzustellen.

Namespace:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Syntax

'Declaration
Public Interface ICommandExtension
public interface ICommandExtension

Der ICommandExtension-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Text Die sichtbare Bezeichnung, die diesen Befehl im Menü identifiziert.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Execute Wird aufgerufen, wenn der Benutzer auf diesen Befehl im Menü klickt.
Öffentliche Methode QueryStatus Implementieren Sie dies, um zu definieren, ob der Befehl sichtbar und aktiviert sein soll.command.Visible und command.Enabled. festlegenÄndern Sie den Zustand des Modells nicht.

Zum Seitenanfang

Hinweise

Um einen Menübefehl für ein UML-Diagramm zu definieren, können Sie diese Schnittstelle in einer Erweiterung Visual Studio implementieren. Im extension.manifest muss die Assembly als MEF-Komponente identifiziert werden. Sie müssen die Klasse mit einem Exportattribut voranstellen:

[Export(typeof(ICommandExtension))]

Sie sollten ein Attribut für jeden Diagrammtyp bereitstellen, auf dem der Befehl angezeigt werden soll:

[ClassDesignerExtension]

Definieren Sie den Befehl als öffentliche Klasse:

public class NameSwapper : ICommandExtension {

Innerhalb der Klasse sollten Sie IDiagramContext importieren, um Sie ermöglichen, das aktuelle Diagramm, die ausgewählten Formen, und auf die Modellelemente den Modellspeicher zuzugreifen:

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

Sie können IServiceProvider importieren, um den Zugriff auf Visual Studio Komponenten wie Projektmappen-Explorer zu erhalten:

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

Wenn ein Befehl mehrere Änderungen am Modell vornimmt, sollten Sie sie in eine einzelne Transaktion gruppieren, sodass Sie die ganze abbrechen können, wenn von fehlschlägt, und damit der Benutzer die ganze mit einem einzelnen rückgängig machen kann, nehmen Sie Befehl rückgängig. Mit ILinkedUndoContext, die eine Transaktion zu erstellen:

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

Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm.

Siehe auch

Referenz

Microsoft.VisualStudio.Modeling.ExtensionEnablement-Namespace