3
我已经创建了以下属性自定义配置节:自定义的ConfigurationSection默认布尔值
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
应该返回。
但是,在上述情况下ArgumentNullException
被抛出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
属性点?