5

我有一个包含太多代码的 C# 类,我想要refactor它。我想做的是从所有的开始public methods,并为每个构建tree一个,显示类中的哪些其他方法是从中调用的,然后是从子类中调用的方法,依此类推。

这将使我能够看到哪些private methods只属于一个public method,哪些是共享的等等。

请注意,我不想在运行时执行此操作,我希望能够直接查看类,或者在.cs file编译后使用反射DLL

我知道我可以在编译的 DLL 上使用反射来获取方法,但是我找不到任何方法来找出类中的其他方法调用了哪些方法。

有人有什么想法吗?同样,这不是运行时问题,它纯粹是为了构建一个可重用的实用程序来帮助重构一个超大的类。我正在研究的解决方案中有很多,所以代码会被一遍又一遍地使用。

4

1 回答 1

10

Visual Studio 2010 具有“查看调用层次结构”操作,您可以在其中查看解决方案中调用代码的所有位置。

根据我的经验,这种静态分析可能有些欠缺,例如可以使用反射、数据绑定、依赖注入容器等动态​​调用方法。

此外,这可能有点偏离主题,并且不适用于您的情况,但我发现找到组件死代码的好方法是拥有一套集成测试。然后您可以运行代码覆盖率,并直观地查看哪些代码路径永远不会执行。

于 2013-01-09T17:54:55.673 回答