C#方法来电

pis*_*hio 3 .net c#

可能重复:
如何找到调用当前方法的方法?

嗨,我怎样才能从方法中确定方法的调用者?例如:

SomeNamespace.SomeClass.SomeMethod() {
   OtherClass();
}

OtherClass() {
   // Here I would like to able to know that the caller is SomeNamespace.SomeClass.SomeMethod
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Bog*_*xim 6

这些文章应该有所帮助:

  1. http://iridescence.no/post/GettingtheCurrentStackTrace.aspx
  2. http://blogs.msdn.com/jmstall/archive/2005/03/20/399287.aspx

基本上代码看起来像这样:

StackFrame frame = new StackFrame(1);
MethodBase method = frame.GetMethod();
message = String.Format("{0}.{1} : {2}",
method.DeclaringType.FullName, method.Name, message);
Console.WriteLine(message);
Run Code Online (Sandbox Code Playgroud)

  • 要小心.我被这个虫子抓了一次.如果构建应用程序以进行发布,则该方法可以内嵌,并且堆栈跟踪看起来会有所不同. (5认同)