c# - 是否有内置方法可以在没有 IOptions 的情况下进行配置模型绑定验证?
问题描述
我知道用这个可以做到
services.AddOptions<MyConfigModel>()
.Bind(Configuration.GetSection(nameof(MyConfigModel)))
.ValidateDataAnnotations();
但我不喜欢通过 option.Value.xxx 访问。
我更喜欢:
var myconfig = new MyConfigModel();
Configuration.Bind(nameof(MyConfigModel), myconfig);
services.AddSingleton(myconfig);
解决方案
为了避免 resolve MyConfigModel
by IOptions<MyConfigModel>.Value
,您可以尝试MyConfigModel
像这样 注册
services.AddOptions<MyConfigModel>()
.Bind(Configuration.GetSection(nameof(MyConfigModel)))
.ValidateDataAnnotations();
services.AddScoped(serviceProvider => serviceProvider.GetRequiredService<IOptions<MyConfigModel>>().Value);
然后像这样使用
public class HomeController : Controller
{
private readonly MyConfigModel _myConfigModel2;
public HomeController(MyConfigModel myConfigModel)
{
_myConfigModel2 = myConfigModel;
}
}
推荐阅读
- r - Ggplotly 直方图 - 如何编辑工具提示?
- python - 单击鼠标按钮时如何继续移动字符
- python-3.x - Python ThreadPoolExecutor 异步
- python - 使用python获取和修改docx文档中的形状?
- android - 在 Spek 测试中使用 Koin 测试
- javascript - 无法使用 $lookup 从 mongodb nodejs 中的外部表中获取数据
- plotly - 用线消失问题绘制图表
- c# - Unity 2d Character 使用 UI 按钮移动和跳转到特定位置
- php - 测试数据库 laravel 7.x 的问题
- ab-initio - 有没有办法在 Abinitio 的特定列中处理逗号分隔的数据