在MVC 6项目,我有以下的配置文件...MVC 6配置验证
{
"ServiceSettings" :
{
"Setting1" : "Value"
}
}
...和下面的类...
public class ServiceSettings
{
public Setting1
{
get;
set;
}
}
在ConfigureServices
方法在Startup
类的,我已经添加下面的代码行...
services.Configure<ServiceSettings>(Configuration.GetConfigurationSection("ServiceSettings"));
如果值是必需的,我如何验证?我可以在实际使用IOptions<ServiceSettings>
实例时验证,但如果服务的运行需要Setting1
的值,我希望尽可能早地捕获该实例,而不是进一步下游。旧的ConfigurationSection
对象允许您指定规则,如果某些内容无效,则会在读取配置数据时抛出异常。
我已将您的解决方案标记为答案,因为它与我提出的类似(在我阅读您的解决方案之前)。我选择实现IValidatableObject接口而不是属性。在这种情况下,这可能比任何事情都更偏好。 –