Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不使用设计器的.NET类图_C#_.net_Visual Studio_Class Diagram - Fatal编程技术网

C# 不使用设计器的.NET类图

C# 不使用设计器的.NET类图,c#,.net,visual-studio,class-diagram,C#,.net,Visual Studio,Class Diagram,在.NET中,是否可以用C语言编程生成类图.cd?如果是,怎么做 PD:很明显,我不是在问如何使用IDE生成这个。我知道我可以将类拖放到类图项中。选择要为其创建类图的.cs文件,然后选择“查看类图”,将生成并显示一个.cd文件。是的,只需打开Visual Studio,右键单击.cs文件或项目,然后选择“查看类图”。.cd是自动创建的。我刚刚用记事本打开了一个.cd文件,它是。。。以编程的方式生成它应该不会那么难。对于这个半答案,我深表歉意,但看看这是否真的可能需要相当长的时间 如果你看一下XM

在.NET中,是否可以用C语言编程生成类图.cd?如果是,怎么做


PD:很明显,我不是在问如何使用IDE生成这个。我知道我可以将类拖放到类图项中。

选择要为其创建类图的.cs文件,然后选择“查看类图”,将生成并显示一个.cd文件。

是的,只需打开Visual Studio,右键单击.cs文件或项目,然后选择“查看类图”。.cd是自动创建的。

我刚刚用记事本打开了一个.cd文件,它是。。。以编程的方式生成它应该不会那么难。

对于这个半答案,我深表歉意,但看看这是否真的可能需要相当长的时间

如果你看一下XML格式,它是相当神秘的,特别是散列条目,如果你删除它,IDE就会删除我尝试了那么多的条目

要真正实现自动化,您需要使用VS自动化API EnvDTE。这些API非常神秘,而且是通用的。在浏览文档时,我找不到一个特定的类或任何处理类图的东西

如果它对您来说足够重要,需要花费几个小时,您可以从手动创建一个开始,以便使用自动化API检查它。 使用VS宏中共同创建或提供的EnvDTE COM对象,使用DTE.Solution.Open打开解决方案。然后使用DTE.Solution.Projects查找带有类图的项目,使用project.ProjectItems查找类图文件

从这里开始,我将首先查看ProjectItem上的Kind属性是否指示了一些特殊的内容,然后再处理其他属性并对ProjectItem的Object属性进行反思,以查看您是否得到了一些特殊的内容

如果只需要生成一次,请查看DTE.Commands属性以获得可用命令的列表。通过右键单击菜单调用的命令应该在其中的某个位置。然后,您可以使用DTE.Windows.ItemsConstants.vsWindowKindSolutionExplorer.Object作为UIHierarchy来获取解决方案资源管理器窗口,并使用UIHierarchy和UIHierarchyItem来选择文件,然后调用命令


很抱歉,我不能提供完整的示例,但由于我手头没有树行走代码,这需要几个小时。

我想我现在明白你的意思了,但我不知道答案。@Shog9我喜欢像你这样聪明的人: