我有一个包含太多代码的 C# 类,我想 refactor
它。我想做的是从所有 public methods
开始, 并构建一个 tree
对于每一个,显示类中的哪些其他方法是从它调用的,然后是从子方法调用的,等等。
这将使我能够看到哪个 private methods
只属于一个public method
, 共享等。
请注意,我不想在运行时执行此操作,我希望能够直接在 .cs file
中查看类,或对编译的 DLL
使用反射.
我知道我可以在已编译的 DLL 上使用反射来获取方法,但我找不到任何方法来找出类中的其他方法调用了哪些方法。
有人有什么想法吗?同样,这不是运行时问题,它纯粹是为了构建一个可重用的实用程序来帮助重构超大类。我正在处理的解决方案中有很多,因此代码会被反复使用。
最佳答案
Visual Studio 2010 具有“查看调用层次结构”操作,您可以在其中查看解决方案中调用代码的所有位置。
根据我的经验,这种静态分析可能有些欠缺,例如可以使用反射、通过数据绑定(bind)、通过依赖注入(inject)容器等动态调用方法。
此外,这可能有点偏离主题,不适用于您的情况,但我发现找到组件死代码的一个好方法是进行一套集成测试。然后你可以运行代码覆盖率,并直观地看到哪些代码路径从未被执行过。
关于c# - 我如何找到从 C# 类方法调用的方法 - 而不是在运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243326/