是否可以将标记有MethodImplOptions.InternalCall的方法链接到其实现?

时间:2010-05-05 18:04:03

标签: c# .net clr reflector

在尝试查找异常的可能原因时,我正在使用Reflector跟踪代码路径。我已经越来越深入了,但最终得到的方法调用看起来像:

[MethodImpl(MethodImplOptions.InternalCall)]
private extern void SomeMethod(int someParameter);

该方法的这个标记告诉框架在某处调用C ++函数。有没有办法找出实际调用的方法,反过来又可能调用什么方法?

注意:我真的不想看到这个方法的源代码,我只是想知道可能会抛出异常的东西,我看到它来自这个方法调用。

2 个答案:

答案 0 :(得分:3)

内部调用最终调用CLR中的C ++函数。您可以在Rotor source code中找到它们。查看clr \ src \ _vm \ ecall.cpp以查找从.NET可见名称到CLR函数名称的映射。请注意源已过时。

答案 1 :(得分:0)

如果要跟踪哪些方法可以抛出给定类型的异常,可以使用http://www.red-gate.com/products/Exception_Hunter/index.htm