2011-07-11 4 views
8

मुझे अपने मॉडल में उपयोगकर्ता नाम संपत्ति के लिए एक नियमित अभिव्यक्ति सत्यापनकर्ता का उपयोग करना होगा। मुझे कॉन्फ़िगरेशन फ़ाइल से यह नियमित अभिव्यक्ति मिल रही है।कस्टम RegularExpressionValidator कैसे लिखें जो कॉन्फ़िगरेशन फ़ाइल से मान लेता है?

[RegularExpression(UsernameValidationExpression)] //UsernameValidationExpression = value from the config file 
public string UserName { get; set; } 

यहाँ मैं एक त्रुटि हो रही है "एक विशेषता तर्क एक निरंतर अभिव्यक्ति होना चाहिए, typeof एक विशेषता पैरामीटर प्रकार की अभिव्यक्ति या सरणी निर्माण अभिव्यक्ति"

कैसे मैं इस हल कर सकते हैं ??

उत्तर

12
public class ConfigRegularExpressionAttribute : RegularExpressionAttribute 
{ 
    public ConfigRegularExpressionAttribute(string patternConfigKey) 
     : base(ConfigurationManager.AppSettings[patternConfigKey]) 
    { } 
} 

और उसके बाद:

[ConfigRegularExpression("UsernameValidationExpression")] 
public string UserName { get; set; } 

और web.config में:

<appSettings> 
    <add key="UsernameValidationExpression" value="foo bar" /> 
</appSettings> 
संबंधित मुद्दे