У меня есть класс, содержащий следующее 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 .