2016-11-23 106 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