共用方式為


ICommandExtension 介面

實作,並從 MEF 延伸,以提供功能表命令模型圖表匯出這個介面。

命名空間:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
組件:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (在 Microsoft.VisualStudio.Modeling.Sdk.11.0.dll 中)

語法

'宣告
Public Interface ICommandExtension
public interface ICommandExtension

ICommandExtension 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 Text 識別此指令在功能表中可見的標籤。

回頁首

方法

  名稱 說明
公用方法 Execute 當使用者按一下功能表上的這個命令時,便會叫用。
公用方法 QueryStatus 實作此選項以定義您的命令是否應該是可見的且處於啟用狀態。設定命令。看得見和命令。已啟用。並不會變更模型的狀態。

回頁首

備註

若要定義功能表命令的 UML 圖表,您可以實作這個介面中的Visual Studio副檔名。Extension.manifest,在您的組件都必須識別為 「 MEF 」 元件。您的類別,以匯出屬性前置詞必須:

[Export(typeof(ICommandExtension))]

您也應該附上一個屬性,您會想要顯示指令每種圖表類型:

[ClassDesignerExtension]

為公用類別中定義的命令:

public class NameSwapper : ICommandExtension {

在您的類別,您應該在匯入IDiagramContext,可讓您存取目前的圖表、 選取的圖形、 模型元素和模型的存放區:

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

您也可以匯入IServiceProvider,以取得存取權Visual Studio元件,例如方案總管] 中:

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

如果您的命令將模型進行多次變更,您可以結合在單一交易當中,組成群組,讓您可以放棄整個群組,和如果失敗,以便使用者可以復原單一的復原指令的整個群組。ILinkedUndoContext可讓您建立的交易:

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

如需詳細資訊,請參閱 HOW TO:在模型圖表上定義功能表命令

請參閱

參考

Microsoft.VisualStudio.Modeling.ExtensionEnablement 命名空間