2011-07-11 12 views
8

私のモデルでは、usernameプロパティの正規表現バリデーターを使用する必要があります。 configファイルからこの正規表現を取得しています。設定ファイルから値を受け取るカスタム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> 
関連する問題