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