使用特定子类型调用时查找特定方法的用法

Reb*_*ott 4 .net c# refactoring code-analysis

我正在重构一个庞大的代码库中的讨厌,需要找到一个特定的方法,接受一个相当通用的接口的实例,用该接口的特定实现调用.

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

我怎样才能找到每一个电话NastyStatic.DoBadThings(foo),但只能找到foo一个实例DontHurtMe

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

Car*_*ter 5

简单.写一个以DontHurtMe为参数的DoBadThings重载.现在看看它的名字.这不会检测使用恰好是DontHurtMe 的声明的IBusinessObject调用方法的情况 - 但我不认为静态分析可以检测到这种情况.这将使用声明的 DontHurtMe 获取方法的所有调用.