次のプロパティを持つカスタム構成セクションを作成しました。
private const string UseMediaServerKey = "useMediaServer";
[ConfigurationProperty(UseMediaServerKey, IsRequired = false, DefaultValue = false)]
public bool UseMediaServer
{
get { return bool.Parse(this[UseMediaServerKey] as string); }
set { this[UseMediaServerKey] = value; }
}
私の理解では、プロパティが構成ファイルで定義されていない場合は、DefaultValue
を返す必要があります。
ただし、上記の場合、構成プロパティが定義されていない場合でも、デフォルトのアクセサーが実行されることを意味するaArgumentNullException
がスローされます。bool.Parse(...)
もちろん、プロパティ アクセサーを次のように変更できます。
private const string UseMediaServerKey = "useMediaServer";
[ConfigurationProperty(UseMediaServerKey, IsRequired = false)]
public bool UseMediaServer
{
get {
bool result;
if (bool.TryParse(this[UseMediaServerKey] as string, out result))
{
return result;
}
return false;
}
set { this[UseMediaServerKey] = value; }
}
しかし、それでは、DefaultValue
プロパティのポイントは何ですか?