相关疑难解决方法(0)

如何获取FxCop中callvirt IL指令实际调用的方法

我仍然试图让我的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指令时将调用的方法?

c# inheritance fxcop

7
推荐指数
1
解决办法
450
查看次数

标签 统计

c# ×1

fxcop ×1

inheritance ×1