web.config や app.config に カスタム設定 を追加した際、その設定値 (config中に設定された値) が意図した通りの値に設定されているかどうか検証する仕組みがあります。
ここでは、デフォルトで存在する検証の仕組みを利用する例をまとめます。
ちなみに、ここで取り上げている各種 Validator は System.Configuration 名前空間
に存在しています。
目次
- StringValidator 属性
- RegexStringValidator 属性
- IntegerValidator 属性, LongValidator 属性
- TimeSpanValidator 属性
StringValidator 属性
文字列が指定された長さかどうか、指定した文字を含まないかどうかを検証します。
[ConfigurationProperty("message", DefaultValue = "Hello")] [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\", MinLength = 0, MaxLength = 100)] public string Message { get { return (string)base["message"]; } set { base["message"] = value; } }
RegexStringValidator 属性
文字列が指定された正規表現を満たしているかどうかを検証します。
[ConfigurationProperty("url", DefaultValue = "http://www.contso.com/")] [RegexStringValidator(@"https?://[\w\-\.~#\$&\+\/:=\?%]+")] public string Url { get { return (string)base["url"]; } set { base["url"] = value; } }
IntegerValidator 属性, LongValidator 属性
数値が指定された 範囲内 または 範囲外 に収まるかどうかを検証します。
IntegerValidator
は Int32
に対応し、 LongValidator
は Int64
に対応します。
指定できる 名前付き引数 はどちらも同じです。
ExcludeRange = false
の場合 (デフォルト の場合)、 MinValue <= 値 <= MaxValue
かどうか。
ExcludeRange = true
の場合、 値 < MinValue && MaxValue < 値
かどうか。
[ConfigurationProperty("maxConnectionCount", DefaultValue = "5")] [IntegerValidator(ExcludeRange = false, MinValue = 0, MaxValue = 10)] public int MaxConnectionCount { get { return (int)base["maxConnectionCount"]; } set { base["maxConnectionCount"] = value; } }
TimeSpanValidator 属性
TimeSpan
が指定された 範囲内 または 範囲外 に収まっているかどうかを検証します。
ExcludeRange = false
の場合 (デフォルト の場合)、 MinValue <= 値 <= MaxValue
かどうか。
ExcludeRange = true
の場合、 値 < MinValue && MaxValue < 値
かどうか。
[ConfigurationProperty("duration", DefaultValue = "0:03:00")] [TimeSpanValidator(ExcludeRange = false, MinValueString = "0:01:00", MaxValueString = "0:05:00")] public TimeSpan Span { get { return (TimeSpan)base["duration"]; } set { base["duration"] = value; } }
関連記事
- ASP.NET で web.config に アプリケーション設定 を 追加 する方法
- ASP.NET で web.config に カスタム設定 を追加する 方法
- ASP.NET で web.config に 高度な カスタム設定 を 定義する方法
- ASP.NET で web.config の カスタム設定 を 独自検証 する 方法
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!