我仍然试图让我的FxCop规则正常工作.
作为其中的一部分,我需要弄清楚方法调用的方法.以前我正在使用CallGraph.CallersFor()(反过来做,这是我最后的目标),但它似乎有我在下面描述的相同问题.
作为使用CallGraph该类的替代方法,我尝试访问所有方法调用来构建字典,基于以下代码:
public override void VisitMethodCall(MethodCall call)
{
Method CalledMethod = (call.Callee as MemberBinding).BoundMember as Method;
// ....
}
Run Code Online (Sandbox Code Playgroud)
但是,事实证明,如果被调用的方法在覆盖基类的方法的派生类上,那么它BoundMember是基类'方法,而不是子类'方法(实际上将被调用的方法).
问题:如何获得在FxCop中使用callvirt IL指令时将调用的方法?