मैं वर्तमान में ट्रेस लिस्टनर में निर्मित अनुप्रयोग लॉगिंग लाइब्रेरी विकसित कर रहा हूं। इस पुस्तकालय का उपयोग कई परियोजनाओं में किया जाएगा और एक साधारण इंटरफ़ेस प्रदान करना चाहिए जहां मुझे केवल लॉग फ़ाइल में क्या लिखा जा रहा है, लेकिन क्यों नहीं।कॉलिंग विधि और कक्षा का नाम कैसे निर्धारित करें?
प्रतिबिंब नामस्थान का उपयोग करके, मैं यह पता लगा सकता हूं कि वर्तमान में कौन से एप्लिकेशन को लॉग फ़ंक्शन (निष्पादन असेंबली नाम पुनर्प्राप्त करना) कहा जाता है, लेकिन मैं फ़ंक्शन और क्लास का नाम भी चाहता हूं जिसे लॉगिंग फ़ंक्शन कहा जाता है।
चलो कहते हैं कि मेरे पास दो:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
जब मैं एक अन्य परियोजना से कॉल (वर्ग: TestClass, विधि: TestMethod)
Tracer.LogInfo("log this!")
मैं लॉग में देखने की उम्मीद:
TestClass, TestMethod, log this!
लेकिन इसके बजाय मुझे
मिलाTracerClass, LogInfo, log this!
मूल विधि और कक्षा का नाम कैसे प्राप्त करें?
[यह आपको बहुत मदद कर सकता है] (http://msdn.microsoft.com/en-us/library/hh534540.aspx) यदि आप नवीनतम सी # और वीएस 2012 का उपयोग कर रहे हैं। –
@ ट्रस्टमे-इमाडॉक्टर शानदार है! ऐसी चीज से अवगत नहीं था। क्या आप इसे टिप्पणी के बजाय उत्तर में बना सकते हैं ताकि मैं वोट कर सकूं और इसे बंद कर सकूं? आपका बहुत बहुत धन्यवाद। – Neurodefekt
@Neurodefekt कोई समस्या नहीं, यह हो गया है। मैं खुशी से मदद कर सकता है। :) –