c# - Is it possible to give an attribute a variable text? -
मेरे पास एक वैकल्पिक त्रुटि पाठ के साथ एक विशेषता है जैसे:
[DoubleRangeCheck (2.0 , 10.0, त्रुटि संदेश = "त्रुटि पर दिखाए गए पाठ")]
अब मैं त्रुटि संदेश को स्थानीय बनाना चाहता हूं, इसलिए मैंने कोशिश की
[DoubleRangeCheck (2.0 , 10.0, ErrorMessage = Properties.Resources.MsgLocalisedError]]
लेकिन मुझे एक कंपाइलर त्रुटि मिलती है जिसमें कहा गया है कि विशेषता स्थिर होना चाहिए।
त्रुटि CS0182: एक विशेषता तर्क एक निरंतर अभिव्यक्ति, प्रकार की अभिव्यक्ति या एक विशेषता पैरामीटर प्रकार की सरणी निर्माण अभिव्यक्ति होना चाहिए
क्या यह संभव नहीं है, या क्या मुझे कुछ याद आ रही है?
मैं एक विशेषता के लिए एक पाठ पैरामीटर को कैसे स्थानांतरित कर सकता हूं?
गुणक, संकलक राज्यों के रूप में, केवल निरंतर मानों के संदर्भ में व्यक्त किया जा सकता है - वे अनिवार्य रूप से सीरियल किए गए हैं और मेटाडेटा में संग्रहीत हैं। हालांकि, उन्हें उप-वर्गीकरण के द्वारा उन्हें स्थानांतरित करने के लिए अक्सर संभव है, और उपवर्ग को उस बहुत उद्देश्य के लिए उजागर कुछ आभासी विधि को ओवरराइड कर रहा है। उदाहरण के लिए, [श्रेणी ("फ़ू")]
के साथ, आप इस तरह से कार्य कर सकते हैं:
class LocalizedCategoryAttribute: श्रेणी प्रविष्टि {सार्वजनिक LocalizedCategoryAttribute (स्ट्रिंग श्रेणी): आधार ( श्रेणी) {} सुरक्षित ओवरराइड स्ट्रिंग GetLocalizedString (स्ट्रिंग मान) {// आपका कोड यहाँ! (मान के रूप में "मान" का इलाज करें) वापस लौटें। गेटलोकलाइज्ड स्ट्रिंग (मान); }}
और फिर [स्थानीयकृत श्रेणी ("फ़ू")]
से सजाने के लिए। यह कितनी अच्छी तरह काम करता है, दोनों विशिष्ट विशेषता और कोड जो उन्हें खपता है पर निर्भर करता है।
Comments
Post a Comment