.net-core - 您如何称呼 DI 用来填充模型的方法?
问题描述
像通用主机这样的 IHost 实现会进行依赖注入。您使用这样的辅助方法填充服务集合
IConfigurationSection section;
section = config.GetSection("SectionName");
services.Configure<SectionModel>(section);
在Configure
辅助方法内部,一些魔术创建了 SectionModel 的实例并从IConfigurationSection
对象中填充它。
那叫什么?我需要在没有 DI 的情况下执行此操作,虽然我确信翻阅 Microsoft 源代码可能会得到答案,但我可以使用执行此操作的方法名称更快地翻阅。
他们很可能只是使用反射,但我不希望自己实现这一点,并且可能有不同的行为。
解决方案
根据文档,这被称为Bind
并出现在IConfigurationSection
.
首先创建配置部分和模型对象,然后Bind
像这样调用
var sectionModel = new SectionModel();
config.GetSection("SectionName").Bind(sectionModel);
@Nkosi 评论
同样可以使用
var sectionModel = config.GetSection("SectionName").Get<SectionModel>();
这是使用泛型的相同解决方案的更优雅的表达。
推荐阅读
- html - 如何保护我的 html 网站不被 http web 复制器复制?
- php - 我如何在不同的端口服务 laravel 7
- python - 在 Pandas 中,如何将日期索引移动到下一个日历日期
- javascript - 如何引用由 EKS 的容器洞察创建的 CloudWatch 指标?
- java - 如何在 KeyCloak 中分配复合角色
- python - 如何在 macOS Big Sur 上的 Python 2.7 中安装 pip?
- javascript - 从源文件夹中获取图像 (PNG) 文件并使用 Javascript 对其进行压缩,然后下载 zip 文件。(客户端)
- c++ - 在 Visual Studio 2017 上找不到信号量标头
- php - 从 Excel 导入数据库
- flutter-test - 如何模拟flutter通用html包