将加载配置添加到asp.net核心中的注入依赖项中

在我的Asp.Net Core API中,我有一些我正在使用我的Startup.cs中的services.AddTransient方法注入的存储库类。

services.AddTransient(); 

我还将我的appsettings.json的一部分加载到Startup.cs中的自定义对象中

 services.Configure(Configuration.GetSection("AppSettings")); 

我的存储库类需要从appsettings.json加载数据库连接字符串。 有没有办法将这些设置直接注入存储库类? 或者是由控制器的构造函数将连接字符串传递给存储库类?

是的,您可以将其直接注入您的存储库。

  public MyRepository(IOptions config) { var connString = config.Value.DbConnString; } 

其中MyConfig是您配置的POCO对象,并在启动时添加/注册:

  public void ConfigureServices(IServiceCollection services) { ... services.Configure(Configuration); } 

MyConfig看起来像这样:

  public class MyConfig { public string DbConnString { get; set; } } 

和appsettings.json这样:

 { "ApplicationName": "MyApp", "Version": "1.0.0", "DbConnString ": "my-conn-string" }