c# - 直到我在 Asp.Net Core 3 中显式调用具有属性的 validate 方法后,IOptions 验证才会触发
问题描述
最近我正在使用 IOptions 接口读取 Asp.net 核心项目中的配置,我发现我的代码不会显示异常页面,直到我使用必需的属性显式调用“验证”方法,如下面的代码所示。
应用设置.json
"DashboardSettings": {
"Header": {
"Title": "Seguro De Coche"//,
//"SearchBoxEnabled": true
}
},
仪表板设置.cs
public class DashboardSettings
{
public HeaderSettings Header { get; set; }
}
public class HeaderSettings
{
public string Title { get; set; }
[Required]
public bool SearchEnabled { get; set; }
}
启动.cs
services.AddOptions<DashboardSettings>().
Bind(configuration.GetSection("DashboardSettings")).
ValidateDataAnnotations();
在上述情况下,“SearchEnabled”属性所需的验证不会触发。当我使用属性显式调用验证方法时,它会触发。(请参见下面的代码和验证方法)
services.AddOptions<DashboardSettings>().
Bind(configuration.GetSection("DashboardSettings")).
ValidateDataAnnotations().
Validate(v =>
{
return v.Header.SearchEnabled;
});
所以我的问题是,如果我的强类型有多个配置属性,那么我会使用类的所有属性来验证它们吗?如果是这样,对我来说这似乎不是一个好主意。请问对此有什么建议吗?
解决方案
推荐阅读
- c++ - 数组中每个无序对的成对和的异或
- azure - 如何从逻辑应用将值作为日期时间放入 Azure 表中
- javascript - 存储赋值后纠缠的对象
- git - 在 GIT 本地克隆特定存储库分支的最简单/最快的方法是什么
- azureportal - 获取值不能为空。运行 Azure Function 应用程序时出现(参数“connectionString”)错误
- python - 在 Python 中创建散点图
- python - 使用python提取嵌套JSON中的特定值
- r - 如何计算从滑块接收值的数学表达式
- oracle - 用于 Oracle Cloud Direct 模式的 Delphi Devart dbExpress 驱动程序“ORA-03113:end-of-file on communication channel”
- amazon-cloudformation - 如何在另一个堆栈中设置 DependsOn 资源?