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;}

有关更多信息,请参见 如何:在建模图上定义菜单命令

请参见

参考

Microsoft.VisualStudio.Modeling.ExtensionEnablement 命名空间