【发布时间】:2021-09-27 13:21:27
【问题描述】:
IHost 的实现(如通用主机)会进行依赖注入。您使用这样的辅助方法填充服务集合
IConfigurationSection section;
section = config.GetSection("SectionName");
services.Configure<SectionModel>(section);
在 Configure 辅助方法中,一些魔术创建了 SectionModel 的实例并从 IConfigurationSection 对象填充它。
这叫什么?我需要在没有 DI 的情况下执行此操作,虽然我确信翻阅 Microsoft 源代码可能会得到答案,但我可以使用执行此操作的方法名称更快地翻阅。
他们很可能只是使用反射,但我不希望自己实现这一点,并且可能存在不同的行为。
【问题讨论】:
-
“这叫什么?”模型绑定?反序列化?它与 DI 关系不大。 DI 是关于注入依赖项,但这是关于加载数据。
-
@Steven 它与 DI 的关系只是 DI 做了它,我想知道 DI 调用什么,以便在没有 DI 的情况下我可以有完全相同的行为。 DI 有一切与它有关,因为它是评估兼容性的上下文。
-
啊,我想我明白你的意思了。当您在问题中提到“DI”时,您指的是“.NET Core 配置系统”。该配置系统包括依赖注入功能。正是这个配置系统加载配置文件,模型将它们绑定到 POCO 类。我将配置系统和 DI 容器视为两个不同的东西。事实上,我将 DI 容器(即库)和 DI(即一组原则、模式和实践)视为两个独立的东西。这可能引起了我们的误解。
标签: .net-core dependency-injection