2010-05-13 13 views
21

हम तो जैसे कुछ अच्छी जिम्मेदार ठहराया डीबी कोड है,: चूंकि यह काफी सामान्य हम इसे फिर से उपयोग करना चाहते हैं है, लेकिन नाम में एक अलग तार के साथसी # में गुण के भीतर चर का उपयोग करना

[Display(Name = "Phone Number")] 
public string Phone { get; set; } 

विशेषता का हिस्सा। चूंकि यह एक विशेषता यह चीजों स्थिरांक होना चाहता हूँ लगता है, इसलिए हम कोशिश की:

const string AddressType = "Student "; 
[Display(Name = AddressType + "Phone Number")] 
public string Phone { get; set; } 

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

क्या किसी विशेषता के अंदर कुछ प्रकार के चर का उपयोग करने का कोई तरीका है ताकि हम विशेषता सजावट प्राप्त कर सकें और रख सकें?

उत्तर

19

एक विशेषता के अंदर सब कुछ संकलन समय पर संकलक के लिए जाना जाना चाहिए। चर मूल रूप से परिवर्तनीय (!) हैं इसलिए गुणों में उपयोग नहीं किया जा सकता है।

यदि आप कोड जनरेशन टूल का उपयोग कर सकते हैं, तो आप प्रत्येक व्युत्पन्न कक्षा में गतिशील रूप से अलग (स्थिर) मानों को इंजेक्ट करने में सक्षम होंगे।

+0

यह बहुत बुरा है, लेकिन मुझे ऐसा लगता है। धन्यवाद। – thepaulpage

+0

यह वास्तव में बहुत बुरा है। हालांकि, ऐसे उपयोग के मामले होना चाहिए, क्या अच्छे विकल्प हैं? – liang

3

आप हुप्स के माध्यम से कूद सकते हैं और परिवर्तनीय भाग को परिभाषित करने के लिए एक अतिरिक्त विशेषता का उपयोग कर सकते हैं, लेकिन यह उत्पादन के मुकाबले काफी काम करेगा। आपके द्वारा किए जाने वाले कार्यों को पूरा करने का कोई आसान तरीका नहीं है।

+0

मैंने संक्षेप में अपनी खुद की विशेषता माना, लेकिन मुझे लगता है कि अतिरिक्त काम सहेजे गए काम को न्यायसंगत नहीं ठहराएगा। यह चीजों के अंत में एक साधारण समस्या है, लेकिन जब इसे संकलित नहीं किया जाना चाहिए। – thepaulpage

संबंधित मुद्दे