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 の フォロー」 お願いします!!