मैं Validator.TryValidateValue()
का उपयोग करना चाहता हूं लेकिन मैकेनिक्स को समझ नहीं पा रहा हूं। कहो, मैं निम्नलिखित है:डेटा एनाटोटेशन में सत्यापन प्रमाणीकरण को समझना
public class User {
[Required(AllowEmptyStrings = false)]
[StringLength(6)]
public string Name { get; set; }
}
और विधि:
public void CreateUser(string name) {...}
मेरे सत्यापन कोड है:
ValidationAttribute[] attrs = bit of reflection here to populate from User class
var ctx = new ValidationContext(name, null, null);
var errors = new List<ValidationResult>();
bool valid = Validator.TryValidateValue(name, ctx, errors, attrs);
यह ठीक काम करता है जब तक name
का मूल्य null
है। ValidationContext
को तुरंत चालू करते समय मुझे ArgumentNullException
मिल रहा है और समझ में नहीं आता है। TryValidateValue()
गैर-शून्य संदर्भ की भी मांग करता है। मेरे पास एक मूल्य और गुणों की एक सूची है जो सत्यापित करने के लिए है। ValidationContext
के लिए क्या है?
इससे पहले कि यह मुझे लगता है कि आपको ऑब्जेक्ट प्रकार को प्रमाणीकरण कॉन्टेक्स्ट में पास नहीं किया जाना चाहिए, संपत्ति नहीं ... इसलिए उपयोगकर्ता के उदाहरण में गुजरना जो शून्य नहीं है। –
यदि आप DataAnnotation की विशेषता को कस्टमाइज़ करना चाहते हैं, तो आप [मेरी पोस्ट] पर जा सकते हैं (http://weblogs.asp.net/thangchung/archive/2010/06/25/extending-resource-provider-for-soring- संसाधन-इन-द-डेटाबेस.aspx) इसके अलावा, आप सत्यापनकर्ता को भी कस्टमाइज़ करते हैं। – thangchung