使用 UML API 编程
使用 Visual Studio 旗舰版 的 UML API 可以编写用于创建、读取和更新 UML 模型和关系图的代码。
除了 API 参考页,以下主题也介绍 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() |
模型中的每个元素都可以表示为关系图上的一个形状。 在某些情况下,可以为每个对象创建新的形状。 可以移动、折叠或展开这些形状,还可以给这些形状着色或调整这些形状的大小。 |
|
IModelStore IDiagramContext |
模型存储区用于存储模型。 关系图上下文使您可以访问当前关系图和存储区。 |
|
ILinkedUndoContext |
可以将一系列更改链接到一个事务中。 |
|
IMenuCommand IGestureExtension ICommandExtension |
定义通过双击或拖到关系图来调用的命令可以扩展关系图的功能。 |
|
ValidationContext |
可以定义验证规则来帮助确保模型符合指定的约束。 |
|
IElement、IShape |
将元素从 UML 模型资源管理器或 UML 关系图拖到另一个关系图或应用程序时,它会序列化为 IDataObject。 |
|
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.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.11.0 |
||
(其他命名空间) |
建议仅对高级用途使用。 |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(其他命名空间) |
建议仅对高级用途使用。 |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
||
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System.Linq |