在 .NET 中是否可以以编程方式 (C#) 生成类图 (.cd)?如果有怎么办?
PD:显然我不是在询问如何使用 IDE 生成它的说明。我知道我可以将类拖放到 ClassDiagram 项目中。
在 .NET 中是否可以以编程方式 (C#) 生成类图 (.cd)?如果有怎么办?
PD:显然我不是在询问如何使用 IDE 生成它的说明。我知道我可以将类拖放到 ClassDiagram 项目中。
我刚刚使用记事本打开了一个 .cd 文件,它是纯 XML ......我不应该那么难以编程方式生成它。
选择需要类图的 .cs 文件,然后选择查看类图,将生成并显示一个 .cd 文件。
是的,您只需打开 Visual Studio 并右键单击您的 .cs 文件或您的项目,然后选择查看类图。.cd 是自动创建的。
我为一半的答案道歉,但看看这是否真的可能需要相当多的时间。
如果您查看 XML 格式,它是相当神秘的,特别是 Hash 条目,如果您删除它,那么 IDE 将删除该条目(我试过很多次)。
要真正实现自动化,您需要使用 VS 自动化 API、EnvDTE。API 非常神秘,而且也很笼统。在查看文档时,我找不到特定的类或任何处理类图的东西。
如果它对您来说很重要,您需要花费几个小时,您可以先手动创建一个,以便您可以使用自动化 API 检查它。使用 EnvDTE COM 对象(CoCreated 或在 VS 宏中提供)使用 DTE.Solution.Open 打开您的解决方案。然后使用 DTE.Solution.Projects 使用类图查找您的项目,并使用 Project.ProjectItems 查找类图文件。
从那里,我会首先查看 ProjectItem 上的 Kind 属性是否表示特殊的东西,然后调整其他属性并反映 ProjectItem 的 Object 属性以查看是否有特殊的东西。
如果您只需要生成一次,请查看 DTE.Commands 属性以获取可用命令的列表。右键单击菜单调用的命令应该在某处。然后,您可以使用 DTE.Windows.Items(Constants.vsWindowKindSolutionExplorer).Object 作为 UIHeirarchy 来获取解决方案资源管理器窗口并使用 UIHeirarchy 和 UIHeirarchyItem 来选择文件,然后调用命令。
抱歉,我无法提供完整的示例,但由于我手边没有树行走代码,因此需要几个小时。