c# - 在使用特定子类型调用时查找特定方法的用法

标签 c# .net refactoring code-analysis

我正在从一个庞大的代码库中重构讨厌的东西,并且需要找到一个特定的方法,接受一个相当通用的接口(interface)的实例,用该接口(interface)的特定实现调用。

例如,在 NastyStatic 中是 DoBadThings(IBusinessObject) 方法。我的业务库中有大约 50 个实现 IBusinessObject 的类,包括 DontHurtMe : IBusinessObject

我如何才能找到对 NastyStatic.DoBadThings(foo) 的每次调用,但只有 fooDontHurtMe 的实例?

编辑:我正在寻找某种静态分析工具。在 DoBadThings(或类似的)中设置动态监视并运行应用程序并不是真正的选择。由于我对 DontHurtMe 所做的更改,它已经抛出异常,并且有太多的代码路径无法以这种方式找到所有用法(至少在它上线并且我的用户开始提示之前) .

最佳答案

简单。编写一个以 DontHurtMe 作为参数的 DoBadThings 重载。现在看看它在哪里被调用。这不会检测到使用声明的 IBusinessObject 调用方法的情况,碰巧 是 DontHurtMe - 但我认为静态分析无法检测到这种情况。这将使用声明的 DontHurtMe 调用您的方法。

关于c# - 在使用特定子类型调用时查找特定方法的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026244/

相关文章:

c# - XNA - 关于本地(改变)船轴的 3D 旋转 - 我错过了什么?

c# - 重构函数,使其为 O(N)

c# - 从csproj文件获取项目输出路径

c# - 您应该在哪里对验证进行单元测试?

java - 干燥这些类的最佳方法是什么,除了构造函数之外的所有内容都重复

c# - 单击时部分选择 DataGridView 单元格的文本

c# - 在哪里生成 SignInManager IdentityUser .cshtml 文件

c# - 未找到引用 Rotativa

c# - 您对这种数据库工作有何看法?

design-patterns - 开发重构友好代码的最佳实践