嗨,我有方法得到调用方法的名称:
public static string GetMethodName()
{
System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace();
return trace.GetFrame(1).GetMethod().Name;
}
当我跟踪错误和异常时,我总是得到方法名称.ctor
如何避免这种情况或至少得到类似ClassName 之类的东西?
最佳答案
怎么样:
StackTrace stackTrace = new StackTrace();
foreach(StackFrame sf in stackTrace.GetFrames())
{
if (!sf.GetMethod().Name.StartsWith(".")) // skip all the ".ctor" methods
{
return sf.GetMethod().DeclaringType.Name + "." + sf.GetMethod().Name;
}
}
return "??"; // What do you want here?
使用字符串比较有点繁琐,但是它可以工作:)
关于stack-trace - 如何获取真实的方法名称而不是.ctor?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5819647/