我有一个包含以下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文件中有以下内容:
然后,我在我的.config文件中添加了以下内容:
<configSections>
<section name="TestingComponentSettings"
type="DummyConsole.TestingComponentSettings, DummyConsole"/>
</configSections>
<TestingComponentSettings waitForTimeSeconds="20" loginPage="myPage" />
当我尝试使用此配置部分时,我会收到以下错误提示:
var Testing = ConfigurationManager.GetSection("TestingComponentSettings")
as TestingComponentSettings;
ConfigurationErrorsException was unhandled
属性 'waitForTimeSeconds' 的值无效。错误信息:该值必须在1-100范围内。
如果将 IntegerValidator
更改为 ExcludeRange = true,则会出现以下情况:
ConfigurationErrorsException was unhandled
属性 'waitForTimeSeconds' 的值无效。错误信息:该值不能在1-100范围内。
然后,如果将 .config 文件中的该属性值更改为大于100的数字,则可以正常工作。
如果将验证器更改为仅具有最大值为100,则可以正常工作,但也将接受值为-1的情况。
是否可以使用带有此类范围的 IntegerValidatorAttribute
?
编辑添加
由微软确认为问题。