2016-11-23 110 views
2

在我dotnetcore API我有一些仓库类我使用services.AddTransient方法在我Startup.cs添加加载配置成在asp.net核心注入依赖

services.AddTransient注射();

我也装我appsettings.json的部分为自定义对象也在Startup.cs

services.Configure(Configuration.GetSection( “的AppSettings”));

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

+0

您可以将配置注入您的控制器,然后将其传递到您的存储库类。 –

回答

1

是的,你可以直接注入到你的仓库。

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" 
} 
+0

谢谢!我想我误解了配置不仅适用于控制器。 – taormania