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:在模型圖表上定義功能表命令。