क्या एसिंक फ़ंक्शन के अंदर से वर्तमान विधि नाम प्राप्त करने के लिए वैसे भी है?async फ़ंक्शन से वर्तमान विधि का नाम प्राप्त करें?
मैं कोशिश की है:
System.Reflection.MethodInfo.GetCurrentMethod();
और मैं StackTrace और 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 "," Invocstance "," CreateInnownObject "," CreateKnownObject "या" CreateUnknownObject "या" MoveNext "
कोई विचार यह है कि मैं यह कैसे कर सकता हूं? मैं एक जेनेरिक लॉगर फ़ंक्शन बनाना चाहता हूं और मैं फ़ंक्शन के नाम पर पास नहीं करना चाहता हूं जिसे लॉगर फ़ंक्शन कहा जाता है, इसलिए मैंने स्टैकट्रैस विधि की कोशिश की, काम नहीं किया।
मैं उस पर छोड़ दिया और कहा, ठीक है, मैं पहले पैरामीटर के रूप समारोह के नाम पर पास भेज देंगे, लेकिन जब मैं बुला समारोह सामान्य लकड़हारा फ़ंक्शन को कॉल करने से प्रतिबिंब विधि कहा जाता है, मैं हमेशा मिलता है "। सीटीओआर "
कोई विचार? ध्यान दें कि जेनेरिक लॉगर फ़ंक्शन जिसे मैं कॉल कर रहा हूं वह एक ही कक्षा में एक स्थिर विधि है (इसे अभी इस तरह से होना चाहिए ...)।
पीएस [EventSource> पी/Invoke] (http://blogs.msdn.com/b/vancem/archive/tags/eventsource/) –