У меня есть класс, содержащий следующий ConfigurationSection:
namespace DummyConsole {
class TestingComponentSettings: ConfigurationSection {
[ConfigurationProperty("waitForTimeSeconds", IsRequired=true)]
[IntegerValidator(MinValue = 1, MaxValue = 100, ExcludeRange = false)]
public int WaitForTimeSeconds
{
get { return (int)this["waitForTimeSeconds"]; }
set { this["waitForTimeSeconds"] = value; }
}
[ConfigurationProperty("loginPage", IsRequired = true, IsKey=false)]
public string LoginPage
{
get { return (string)this["loginPage"]; }
set { this["loginPage"] = value; }
}
}
}
Затем у меня есть следующее в моем файле .config:
<configSections>
<section name="TestingComponentSettings"
type="DummyConsole.TestingComponentSettings, DummyConsole"/>
</configSections>
<TestingComponentSettings waitForTimeSeconds="20" loginPage="myPage" />
Когда я затем пытаюсь использовать этот раздел конфигурации, я получаю следующую ошибку:
var Testing = ConfigurationManager.GetSection("TestingComponentSettings")
as TestingComponentSettings;
ConfigurationErrorsException не было обработано
Недопустимое значение свойства «waitForTimeSeconds». Ошибка: значение должно находиться в диапазоне от 1 до 100.
Если я изменю IntegerValidator
на ExcludeRage = true, я (очевидно) получу:
ConfigurationErrorsException не было обработано
Недопустимое значение свойства «waitForTimeSeconds». Ошибка: значение не должно быть в диапазоне 1-100
Если затем я изменю значение свойства в .config на число больше 100, оно сработает.
Если я изменю валидатор на MaxValue
из 100, он сработает, но также примет значение -1.
Можно ли использовать IntegerValidatorAttribute
с таким диапазоном?
Изменить, чтобы добавить
Подтверждено Microsoft как проблема.