获取调用方法的命名空间和程序集

时间:2012-06-18 20:03:27

标签: c# .net

System.Reflection中是否有一个技巧来获取调用另一个方法的方法的命名空间?我现在拥有的是:

var stackTrace = new System.Diagnostics.StackTrace();
MethodBase method = stackTrace.GetFrame(1).GetMethod();
string namespace = method.DeclaringType.Namespace;
Assembly assembly = method.DeclaringType.Assembly;

1 个答案:

答案 0 :(得分:0)

不,如果调用方法是内联的,即使你的技巧也不会在生产中工作 - 也就是说,编译器使它与下一个方法一致。

没有可靠的方法来获取这种信息。

http://www.mehdi-khalili.com/that-tricky-stacktrace