संभव डुप्लिकेट:
How can I find the method that called the current method?एक विधि के भीतर से बुला विधि नाम प्राप्त कर रहा है
मैं एक उद्देश्य यह है कि वस्तु के भीतर स्थानों के एक नंबर से कहा जाता है में एक विधि है। क्या इस लोकप्रिय विधि को बुलाए जाने वाले विधि का नाम पाने का एक तेज़ और आसान तरीका है।
छद्म कोड उदाहरण:
public Main()
{
PopularMethod();
}
public ButtonClick(object sender, EventArgs e)
{
PopularMethod();
}
public Button2Click(object sender, EventArgs e)
{
PopularMethod();
}
public void PopularMethod()
{
//Get calling method name
}
PopularMethod()
के भीतर मैं Main
का मूल्य देखना चाहेंगे अगर यह Main
से बुलाया गया था ... मैं देखने के लिए "ButtonClick
" अगर PopularMethod()
ButtonClick
से बुलाया गया था चाहते हैं
मैं System.Reflection.MethodBase.GetCurrentMethod()
पर देख रहा था लेकिन मुझे कॉलिंग विधि नहीं मिलेगी। मैंने StackTrace
कक्षा को देखा है, लेकिन जब भी विधि कहा जाता है तो मुझे वास्तव में एक संपूर्ण स्टैक ट्रेस चलाने से प्रसन्नता नहीं होती।
अधिक जानकारी के लिए देखें: http://discuss.joelonsoftware.com/default.asp?dotnet.12.511358.10 –
सिस्टम। डायग्नोस्टिक्स स्टैकट्रेस, सिस्टम का नामस्थान है। प्रतिबिंब विधिबेस का नामस्थान है। – Guvante
जेसन - धन्यवाद, मुझे यकीन नहीं है कि "स्टैकट्रेस" विधि कितनी संसाधन गहन है, लेकिन यह मुझे वह चीज़ मिलती है जो मैं ढूंढ रहा हूं। यह सिर्फ मेरे लिए एक डीबगिंग कोड ब्लॉक है, यह उत्पादन में नहीं जा रहा है। आपकी मदद के लिए पुनः शुक्रिया ! –