首页 文章

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

提问于
浏览
3

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

services.AddTransient<IRepository, Repository>();

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

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

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

1 回答

  • 2

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

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

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

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

    MyConfig看起来像这样:

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

    和appsettings.json这样:

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

相关问题