使用 UML API 编程

使用 Visual Studio 旗舰版 的 UML API 可以编写用于创建、读取和更新 UML 模型和关系图的代码。

除了 API 参考页,以下主题也介绍 API。

主题

介绍的示例类型和方法

介绍的功能

如何:使用 UML API 导航关系

UML 元素及其属性和关联。 例如,IElement 及其后代,包括:IClass、IActivity、IUseCase、IComponent、IInteraction、IModel、IPackage

在 Visual Studio 旗舰版中,UML 模型符合 UML 规范版本 2.1.2,可从 UML Resource Page(UML 资源页)获取该规范。 每个类型都是一个与 UML 类型具有同一名称(以“I”为前缀)的接口。

如何:创建元素和关系

IPackage.CreateClass()

IClass.CreateOperation()

每个元素类型都有用于创建其子级的方法。

如何:在关系图上显示模型

IShape、IDiagram

IShape.Move()

模型中的每个元素都可以表示为关系图上的一个形状。 在某些情况下,可以为每个对象创建新的形状。 可以移动、折叠或展开这些形状,还可以给这些形状着色或调整这些形状的大小。

如何:导航 UML 模型

IModelStore

IDiagramContext

模型存储区用于存储模型。

关系图上下文使您可以访问当前关系图和存储区。

如何:使用事务链接模型更新

ILinkedUndoContext

可以将一系列更改链接到一个事务中。

如何:在建模图上定义菜单命令

IMenuCommand

IGestureExtension

ICommandExtension

定义通过双击或拖到关系图来调用的命令可以扩展关系图的功能。

如何:为 UML 模型定义验证约束

ValidationContext

可以定义验证规则来帮助确保模型符合指定的约束。

如何:从 IDataObject 获取 UML 模型元素

IElement、IShape

将元素从 UML 模型资源管理器或 UML 关系图拖到另一个关系图或应用程序时,它会序列化为 IDataObject。

如何:使用 UML API 编辑序列图

IInteraction、ILifeline、IMessage

创建和更新交互关系图与处理其他关系图类型略有不同。

扩展层关系图

ILayer、ILayerDiagram

您可以编写代码来创建和编辑层关系图,也可以参照层关系图验证程序代码。

有关实现的说明

UML 建模工具是基于 Domain-Specific Language Tools 构建的。 每个包和每个关系图均由一个 Domain-Specific Language Tools 模型表示,而一个由规则和其他方法构成的集合可保持它们之间的一致性。

来自该平台的类型在您引用的某些程序集中将是可见的,以便编写 UML 扩展。 虽然可以通过访问 Domain-Specific Language Tools API 来生成 UML 工具的扩展,但应谨记以下注意事项:

  • 您可能会发现,一些看似简单的更改会导致不一致并产生意外的效果。

  • 由于该实现在以后可能会发生更改,因此使用 Domain-Specific Language Tools API 进行的改编可能不再有效。

API 程序集

此表对为 UML 工具提供扩展性的程序集和推荐使用的命名空间进行了汇总。

程序集

命名空间

提供对以下对象的访问:

Microsoft.VisualStudio.Uml.Interfaces

(全部)

UML 类型。

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

创建方法

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

关系图和形状

Microsoft.VisualStudio.ArchitectureTools.Extensibility

建模项目

Microsoft.VisualStudio.Modeling.Sdk.11.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

菜单命令扩展

链接的撤消事务

Microsoft.VisualStudio.Modeling.Validation

验证

(其他命名空间)

建议仅对高级用途使用。

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0

Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement

笔势处理程序

(其他命名空间)

建议仅对高级用途使用。

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

指向工作项的链接

Microsoft.TeamFoundation.WorkItemTracking.Client

Microsoft.TeamFoundation.WorkItemTracking.Client

工作项及其字段

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

工作项及其字段

System.ComponentModel.Composition

System.ComponentModel.Composition

MEF 组件的导出和导入

System.Linq

System.Linq

集合的简单操作(尤其是在处理关系时)

请参见

概念

扩展 UML 模型和关系图

其他资源

UML 建模扩展性的 API 参考