不使用设计器的.NET类图

时间:2009-04-07 20:59:57

标签: c# .net visual-studio class-diagram

在.NET中是否可以以编程方式(C#)生成类图(.cd)?如果是这样的话?

PD:显然我不是在询问如何使用IDE生成这个的方向。我知道我可以将类拖放到ClassDiagram项目中。

4 个答案:

答案 0 :(得分:3)

我刚刚使用记事本打开了一个.cd文件,它是plain XML ...我不应该以编程方式生成它。

答案 1 :(得分:0)

选择您想要类图的.cs文件,然后选择View Class diagram,将生成并显示.cd文件。

答案 2 :(得分:0)

是的,您只需打开Visual Studio并右键单击.cs文件或项目,然后选择View Class Diagram。 .cd会自动创建。

答案 3 :(得分:0)

我为半答案道歉,但看看这实际上是否可能会花费相当多的时间。

如果你看一下XML格式,它就相当神秘,特别是哈希条目,如果你删除它,那么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来选择文件,然后调用命令。

抱歉,我无法提供完整的示例,但由于我没有方便的树行走代码,因此需要几个小时。