【发布时间】:2011-04-04 20:46:24
【问题描述】:
我通过继承 ConfigurationSection 在 c# 类库中创建了一个自定义配置部分。我在我的 Web 应用程序(也是 c#、ASP.NET)中引用了类库,填写了适当的属性,一切都很好。当我开始添加验证器时,问题就开始了。
例如这个属性:
[ConfigurationProperty("appCode", IsRequired = true)]
public string ApplicationCode
{
get
{
return (string)base["appCode"];
}
set
{
base["appCode"] = value;
}
}
它工作正常,但只要我添加这个:
[StringValidator(MinLength=1)]
它会发生以下错误:
属性“appCode”的值无效。错误是:字符串必须至少有 1 个字符长。
即使我的web.config 文件中有一个有效的appCode 值,我也会收到此错误。如果我删除验证器,它会完美运行。有谁知道如何解决这个问题?
【问题讨论】:
-
我已经阅读了整个系列,不幸的是它没有解释我收到错误的原因。
-
您是否尝试过使用(有效)默认值初始化 ApplicationCode 属性?似乎验证规则在从配置文件中读取值之前的某个时间点失败。
-
是的,默认情况下也能正常工作。并非所有字段都具有有效/合理的默认值,尤其是可选字段,因此它似乎无法从配置初始化,这很烦人。
标签: c# asp.net configuration