मेरे पास कई विशेषताओं का संग्रह है जिसे सभी को हमेशा यूआई और सत्यापन के लिए उपयोग किया जाना चाहिए। उदाहरण के लिए एक मुद्रा क्षेत्र के लिए, मुझे एक यूआई संकेत, सत्यापन तर्क, और प्रदर्शन स्वरूपण जोड़ना होगा। नतीजतन, मेरी कक्षा बहुत भीड़ दिखती है।डेटा एनोटेशन विशेषताओं को मिलाएं
public class Model
{
[UIHint("Currency")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
[CustomRegularExpression(Currency.ValidationPattern, OnlyOnClientSide = true)]
[SetMetaDataForCustomModelBinder("Currency")]
public double? Cost { get; set; }
[UIHint("Currency")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
[CustomRegularExpression(Currency.ValidationPattern, OnlyOnClientSide = true)]
[SetMetaDataForCustomModelBinder("Currency")]
public double? Profit { get; set; }
}
वहाँ एक [Currency]
विशेषता यह है कि इन सभी विशेषताओं की कार्यक्षमता को जोड़ती है एक साधारण गुण होने के लिए बनाने के लिए कोई तरीका है? मेरा लक्ष्य निम्नलिखित बनाने के लिए होगा:
public class Model
{
[Currency] public double? Cost { get; set; }
[Currency] public double? Profit { get; set; }
}
संपादित करें: स्पष्ट करने के लिए, मैं एक कस्टम विशेषता बनाने की कोशिश की है, लेकिन वहाँ उजागर नहीं इंटरफेस है कि मुझे उन अलग-अलग विशेषताओं की कार्यक्षमता को लागू करने की अनुमति होगी रहे हैं। मैं प्रमाणीकरण एट्रिब्यूट subclass कर सकते हैं, लेकिन फिर मैं UIHintAttribute subclass भी नहीं कर सकता। कोई अन्य संभावित समाधान मैं याद कर रहा हूँ?
दिलचस्प सवाल आप कुछ इस तरह होगा। यह @DarinDimitrov क्षेत्र –
मेरा अनुमान है कि आपको पोस्टशर्प जैसे कुछ की आवश्यकता होगी और एओपी का उपयोग करें। –
मैं उत्सुक हूं कि यह कैसे किया जाएगा। मुझे यह – amhed