Это хороший способ проверить значение в свойствах getter / setters ConfigurationElement - PullRequest
1 голос
/ 20 декабря 2011

Вот что я написал для проверки значений файла 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 Ответ

2 голосов
/ 20 декабря 2011

При установке значения рекомендуется проверить диапазон и выдать исключение, если оно недопустимо.

Получив его, я бы не стал бросать исключение. Таким образом, кто-то может завершить работу приложения, отредактировав app.config вручную. В вашем геттере я бы ограничил значение конкретным диапазоном и вернул бы действительный результат.

if ((int)this["myproperty"] < 0 )
{
     return 0;
}

if ((int)this["myproperty"] > 999 )
{
     return 999;
}

return (int)this["myproperty"]
...