首页 > 解决方案 > 您如何称呼 DI 用来填充模型的方法?

问题描述

像通用主机这样的 IHost 实现会进行依赖注入。您使用这样的辅助方法填充服务集合

  IConfigurationSection section;
  section = config.GetSection("SectionName");
  services.Configure<SectionModel>(section);

Configure辅助方法内部,一些魔术创建了 SectionModel 的实例并从IConfigurationSection对象中填充它。

那叫什么?我需要在没有 DI 的情况下执行此操作,虽然我确信翻阅 Microsoft 源代码可能会得到答案,但我可以使用执行此操作的方法名称更快地翻阅。

他们很可能只是使用反射,但我不希望自己实现这一点,并且可能有不同的行为。

标签: .net-coredependency-injection

解决方案


根据文档,这被称为Bind并出现在IConfigurationSection.

首先创建配置部分和模型对象,然后Bind像这样调用

var sectionModel = new SectionModel();
config.GetSection("SectionName").Bind(sectionModel);

@Nkosi 评论

同样可以使用

var sectionModel = config.GetSection("SectionName").Get<SectionModel>();

这是使用泛型的相同解决方案的更优雅的表达。


推荐阅读