Это хороший способ проверить значение в свойствах getter / setters ConfigurationElement
Вот что я написал для проверки значений файла app.config моего приложения, и я хочу знать, хороший ли это способ? Я выбрасываю ArgumentOutOfRangeException непосредственно в методах получения / установки MyProperty:
internal sealed class ProcessingMyPropertyElement : ConfigurationElement
{
[ConfigurationProperty("myproperty", IsRequired = true)]
public int MyProperty
{
get
{
if ((int)this["myproperty"] < 0 || (int)this["myproperty"] > 999)
throw new ArgumentOutOfRangeException("myproperty");
return (int)this["myproperty"];
}
set
{
if (value < 0 || value > 999)
throw new ArgumentOutOfRangeException("myproperty");
this["recurEvery"] = value;
}
}
}
1 ответ
Решение
При установке значения рекомендуется проверить диапазон и выдать исключение, если оно недопустимо.
Получив его, я бы не стал исключать. Таким образом, кто-то может завершить работу приложения, отредактировав app.config вручную. В вашем геттере я бы ограничил значение конкретным диапазоном и вернул бы действительный результат.
if ((int)this["myproperty"] < 0 )
{
return 0;
}
if ((int)this["myproperty"] > 999 )
{
return 999;
}
return (int)this["myproperty"]