繁体   English   中英

如何在 .NET 核心 API 中使用 Autofac 为配置文件配置 DI?

[英]How to configure DI for a configuration file with Autofac in .NET core API?

这里是初学者,正如标题所示,我想从我的配置文件中获取一些对象,并对需要它的类进行构造函数注入。

示例配置文件.Json

{
"ConfigurationCollection" { 
  "Config": [
   {
   "Name" : "NameValue",
   "Time" : "TimeValue"
   },
   {
   "Name" : "NameValue",
   "Time" : "TimeValue"
   }
  ]
 }
}

然后我有一个配置 Class:

配置类.cs

public class ConfigurationClass
{
  public ConfigurationCollection Configuration { get; set; }
}

然后我有单独的配置class:

public class ConfigurationCollection {
  public IEnumerable<Config> Config { get; set; }
}

最后是配置类:

public class Config {
  public string Name { get; set;}
  public int Age { get; set; }
}

我有一个模块容器,但在网上找不到太多资源来将此配置转换为对象并通过 Autofac 进行 DI。

任何指针将不胜感激!

您可以跳过 ConfigurationClass 并将 ConfigurationCollection 直接绑定到 Program.cs/Startup.cs 中 ConfigureServices 方法中 IConfiguration 接口上的特定部分

var config = new ConfigurationCollection();
Configuration.Bind("ConfigurationCollection", config);
services.AddSingleton(config);

然后构造函数在需要的地方注入 ConfigurationCollection。

注意:Bind() 扩展是 Microsoft.Extensions.Configuration.Binder package 的一部分,可以通过 nuget 添加

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM