.NET中显示类层次结构的工具

12

是否有一种工具/方式可以显示我项目中实现某个接口的所有类/接口? 在Eclipse(Java)中,我会使用上下文菜单“打开类型层次结构”选项,这将显示一个(漂亮的)类型树,其中包含扩展所选类型的类型。 在.NET中有没有做同样事情的工具?

7个回答

10
我支持Marc关于.NET Reflector的推荐,并想补充一下,在CodePlex上有一系列令人印象深刻的插件可用。
以下是我经常使用的一些插件:
- Deblector - 这个插件允许在Reflector内部调试进程。 - Graph - 这个插件绘制程序集依赖图和IL图。 - DependencyStructureMatrix - 允许您创建和浏览依赖结构矩阵。 - AutoDiagrammer - 这个插件绘制类图。 - CodeModelViewer - 这个插件显示所选项的底层代码模型对象。

3
请注意,.NET Reflector并非开源软件。它现在归RedGate所有,并需要付费购买。 - ekkis

7
Resharper 是一款 Visual Studio 插件,除了众多强大的功能外,还具备“查看类型层次结构”特性。

Resharper看起来确实是一个不错的工具,但它并不是免费的。我来自Java背景,所以习惯于免费获得所有好东西。 :D - Hosam Aly
1
没错。我也来自Java背景,发现Java中一些好用的工具也不是免费的。我总是更喜欢IntelliJ IDE而不是Eclipse。有时候你会得到你所付出的代价。Resharper为我节省了很多时间,它值得花钱购买。 - Mike Two
谢谢,右键单击->检查->类型层次结构或Ctrl+E,Ctrl+H - Iman

4

您可以在 Visual Studio 中使用 对象浏览器:

对象浏览器允许您选择和查看项目中可用的符号。您可以从“视图”菜单打开对象浏览器,或者通过单击主工具栏上的对象浏览器按钮来打开它。

在对象窗格中,图标标识层次结构,例如.NET Framework和COM组件、命名空间、类型库、接口、枚举和类。您可以展开这些结构以显示其成员的有序列表。属性、方法、事件、变量、常量和其他包含的项列在成员窗格中。在对象窗格或成员窗格中选择的项的详细信息将出现在描述窗格中。


3
但不包括子类型/实现类型。 - Marc Gravell
可以使用弹出->查找所有引用来找到要实现的类型。 - jnnnnn
这里的一个缺陷是,“查找所有引用”方法在类是 .Net 语言的一部分时不起作用。例如,现在我想找到一个实现 System.Web.Routing.RouteBase 的类。我知道我可以去互联网上找到答案,但如果能在 Visual Studio 中完成就更好了——最好不用使用第三方工具。 - Steve Chambers

1

Reflector可以做到这一点(而且是免费的)。找到接口,并在树中展开“派生类型”节点。

另外,在Visual Studio中,“类图”项目项也可以实现此功能,但我更喜欢Reflector的简洁性质。


要开始,请使用“文件”->“打开...”并打开您的项目dll(s)。 - Marc Gravell
反射器完全符合我所需的。谢谢。 顺便说一句,类图编辑器对我无济于事,因为我想要查看系统类的所有派生类型。 - Hosam Aly
3
在此写作时,Reflector可能是免费使用的,但现在似乎不再是了。 Reflector可能在写这篇文章的时候是免费的,但目前看起来已经不是了。 - Steve Chambers

1
我发现这个Resharper功能很方便,可以仅显示类型层次结构。类似于eclipse提供的功能(F4-打开类型层次结构)。选择父类,然后在VS编辑器上右键单击,选择“高级查找用法”,并选中“派生类型”复选框(或)按CTRL + ALT + SHIFT F12显示搜索属性窗口。

enter image description here


0

我刚刚发现在C++(在类视图中)中可以查看派生类的选项,但是在Visual Studio 2008的C#中却没有。哇。


0

因为我在2018年也在寻找同样的东西:

从Visual Studio 2015开始,您可以直接从市场安装Type Hierarchy Viewer。虽然它不如Eclipse的对应工具美观,但功能齐全且免费。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接