2017-03-01 24 views
5

के लिए स्ट्रिंग के रूप में कार्रवाई का नाम प्राप्त करें मेरे पास कुछ एक्शन विशेषताएँ हैं जो पैरामीटर की अनुमति देती हैं। इस तरह यह दिखता है:विशेषता-पैरामीटर

[DeleteActionCache(Action="GetTerms")] 
public ActionResult AddTerm(string term){ } 

public ActionResult GetTerms() {} 

अब मैं अपने गुण में जादू स्ट्रिंग "गेट टर्म" से छुटकारा पाना चाहता हूं। इसलिए मैं कुछ ऐसा करना चाहते हैं: (स्यूडोकोड, काम नहीं कर रहा)

[DeleteActionCache(Action=this.GetTerms().GetType().Name)] 

मेरी विशेषता-वर्ग के भीतर एक अतिरिक्त संपत्ति होने और "Method2String" कर -Conversions अंदर मेरे उस वर्ग मेरे साथ ठीक हो जाएगा यह करने की जरूरत है, तो जो मैं चाहता हूं उसे प्राप्त करें।

जानकारी: मैं नहीं हूँ एक रास्ता तलाश वर्तमान विधि नाम (MethodBase.GetCurrentMethod)

उत्तर

7

nameof यहाँ मदद कर सकता है:

[DeleteActionCache(Action=nameof(GetTerms))] 

उपयोग पर निर्भर करता है संपत्ति के, आप उस स्थान पर इसे संभालने के बेहतर हो सकते हैं जहां विशेषता सदस्य से पढ़ी जाती है, लेकिन इस मामले में यह कठिन लगता है क्योंकि कार्रवाई के बीच कोई निश्चित संबंध नहीं है और संपत्ति।