从 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;}
有关更多信息,请参见 如何:在建模图上定义菜单命令。