我有一个C#类,代码太多了,我希望refactor
。我想要做的是从所有public methods
开始,并为每个tree
构建一个private methods
,显示从中调用类中的其他方法,然后从子项中调用哪些方法等等。
这样我就可以看到哪个public method
仅属于一个.cs file
,哪些是共享的等等。
请注意,我不想在运行时执行此操作,我希望能够直接在DLL
或使用编译的{{1}}上的反射来查看类。
我知道我可以在编译的DLL上使用反射来获取方法,但我找不到任何方法来找出类中其他方法调用的方法。
任何想法?同样,这不是运行时问题,它纯粹是为了构建一个可重用的实用程序来帮助重构超大类。我正在研究的解决方案中有很多,所以代码可以反复使用。
答案 0 :(得分:10)
Visual Studio 2010具有“查看调用层次结构”操作,您可以在其中查看解决方案中调用代码的所有位置。
根据我的经验,这种静态分析可能有些缺乏,例如可以使用Reflection,数据绑定,依赖注入容器等动态调用方法。
此外,这可能有点偏离主题,并不适用于您的情况,但我发现找到组件的死代码的好方法是进行一套集成测试。然后,您可以运行代码覆盖,并直观地查看从不执行的代码路径。