У меня есть следующий ConfigurationProperty как часть элемента:
[ConfigurationProperty("example", IsRequired = false, DefaultValue = null)]
public string Example {
get { return (string)base["example"]; }
set { base["example"] = value; }
}
Если я устанавливаю его следующим образом, он берет строку "Hello"
и работает правильно:
<myElement example="Hello"/>
Если этого нет, у меня возникают проблемы:
<myElement/>
Вместо того, чтобы принимать значение по умолчанию null
, как указано выше, оно принимает значение String.Empty
. Почему это, и как я могу заставить его взять значение по умолчанию null
?
Обновление
Это определенно потому, что base["example"]
возвращает String.Empty
, где base
является ConfigurationElement
(здесь указан указатель: https://msdn.microsoft.com/en-us/library/c8693ks1(v=vs.110).aspx), но Я все еще не уверен, почему он не принимает значение null
.
Обновление
Даже DefaultValue = default(string)
устанавливает строку в String.Empty
.
Обновление
Even base.Properties.Contains("example")
возвращает true
, если свойство не существует в конфигурации.