ब्राउज़ किया गया है, खोजा गया है और उम्मीद है लेकिन सीधे जवाब नहीं मिल सकता है।वर्तमान विधि का नाम पाने के लिए नाम का उपयोग
विधि का नाम निर्दिष्ट withouth nameof
का उपयोग कर वर्तमान पद्धति नाम पाने के लिए सी # 6.0 में वैसे भी वहाँ है?
मैं इस तरह एक शब्दकोश में मेरी परीक्षा परिणाम द्वारा जोड़ा जा रहा:
Results.Add(nameof(Process_AddingTwoConsents_ThreeExpectedRowsAreWrittenToStream), result);
मैं अगर मैं तो मैं कॉपी कर सकते हैं + लाइन पेस्ट स्पष्ट रूप से विधि नाम निर्दिष्ट करने की जरूरत नहीं होगी पसंद करते हैं, एक गैर कामकाजी उदाहरण:
Results.Add(nameof(this.GetExecutingMethod()), result);
यदि संभव हो तो मैं प्रतिबिंब का उपयोग नहीं करना चाहता।
अद्यतन
यह (के रूप में सुझाव दिया) नहीं है this question का डुप्लिकेट। मैं पूछ रहा हूं कि वर्तमान विधि नाम प्राप्त करने के लिए nameof
के बिना (!) प्रतिबिंब के उपयोग के लिए स्पष्ट रूप से संभव है या नहीं।
और आप इसका उपयोग क्यों नहीं करते: http://stackoverflow.com/questions/44153/can-you-use-reflection-to-find-the-name-of-the-currently-executing-method? – HimBromBeere
ऐसी जानकारी प्राप्त करने के लिए आप 'स्टैकट्रेस' का उपयोग कर सकते हैं, लेकिन यह धीमा है। कुछ स्वचालित प्राप्त करने के लिए आप कोड-पीढ़ी का उपयोग कर सकते हैं (उदाहरण के लिए एक उपकरण जो कंपाइलर से पहले चलता है और कुछ और चीज़ों को बदल देता है) या एओपी (देखें [यह] (http://stackoverflow.com/q/25803/1997232))। – Sinatr
क्या ऐसा नहीं होगा? 'System.Reflection.MethodInfo.GetCurrentMethod()। नाम' – Zorkind