ICommandExtension 接口

从MEF 扩展中实现并导出这个界面以提供一个建模图的菜单命令。

命名空间:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
程序集:  Microsoft.VisualStudio.Modeling.Sdk.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.12.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;}

有关详细信息,请参阅如何:在建模图上定义菜单命令

请参阅

参考

Microsoft.VisualStudio.Modeling.ExtensionEnablement 命名空间