反正有没有从异步函数中获取当前方法名?从异步函数中获取当前方法名称?
我已经试过:
System.Reflection.MethodInfo.GetCurrentMethod();
而且我已经使用堆栈跟踪和StrackFrame如下尝试:
StackTrace strackTrace = new StackTrace();
for (int i = 0; i < strackTrace.GetFrames().Length; i++)
{
SafeNativeMethods.EtwTraceInfo("Function" + i + ":" + function);
SafeNativeMethods.EtwTraceInfo("Type" + i + ":" + strackTrace.GetFrame(i).GetType().Name);
SafeNativeMethods.EtwTraceInfo("Method" + i + ":" + strackTrace.GetFrame(i).GetMethod().Name);
SafeNativeMethods.EtwTraceInfo("ToString Call" + i + ":" + strackTrace.GetFrame(i).ToString());
}
但他们都不似乎工作,我会得到” .ctor “,”InvokeMethod“,”Invoke“,”CreateInstance“,”CreateKnownObject“或”CreateUnknownObject“或”MoveNext“
关于如何做到这一点的任何想法?我想创建一个通用的记录器函数,我不想传入调用记录器函数的函数的名称,所以我尝试了stacktrace方法,但没有奏效。
我放弃了这一点,并说,好吧,我会传入函数名称作为第一个参数,但是当我从调用通用记录器函数的调用函数调用反射方法时,我总是得到“。 ctor“
任何想法?请注意,我调用的通用记录器函数是同一类中的静态方法(现在它必须是这种方式)。
P.S. [EventSource> P/Invoke](http://blogs.msdn.com/b/vancem/archive/tags/eventsource/) –