以下配置属性的默认值很明显。它是" Arial":
[ConfigurationProperty("name", DefaultValue = "Arial", IsRequired = true)]
public string Name
{
get { return (string)this["name"]; }
set { this["name"] = value; }
}
但是,如果我删除" DefaultValue"该怎么办?部分,如下?
[ConfigurationProperty("name", IsRequired = true)]
public string Name
{
get { return (string)this["name"]; }
set { this["name"] = value; }
}
在Visual Studio中,属性上的DefaultValue属性的值列为{object},如果我在其上调用.ToString(),我得到" System.Object"。
如何检查属性上是否实际指定了默认值?
答案 0 :(得分:0)
根据参考源,看起来私有地创建了一个对象,这意味着无法访问它:
private object _DefaultValue = ConfigurationElement.s_nullPropertyValue;
但是,我能够解决问题如下:
var isDefaultSpecified = propertyAttribute.DefaultValue != null && propertyAttribute.DefaultValue.GetType() != typeof(object);