現在APPSetting下面配置以下節點
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "Conn": "Host=10.10.1.15;Port=5432;Database=postgres;User ID=pgadmin;Password=nVNwFeaWMK8Sh6jW;" }, "Setting": { "Conn": "sqlLink", "Conn2": "sqlLink2", "Link": "LinkUrl" } }
比如說我要取ConnectionStrings
我們需要在startup里通過 IConfiguration Configuration這個屬性來取
寫法如下
var sqlConn = Configuration.GetConnectionString("Conn"); var sqlConn2 = Configuration["ConnectionStrings:Conn"];
返回結果如下
現在我們可以看到都成功讀取到了配置文件中 Conn的內容
當然我們實際情況中肯定不止要取一個屬性對吧所以下面介紹的取對象的方法
首先在啊 ConfigureServices方法里面注入
public void ConfigureServices(IServiceCollection services) { services .Configure<Setting>(Configuration.GetSection("Setting")) .AddMvc(); }
同時項目建立一個和AppSetting里相同鍵值的類 Setting
public class Setting { /// <summary> /// 數據庫連接字符串 /// </summary> public string Conn { get; set; } public string Conn2 { get; set; } public string Link { get; set; } }
然后建立一個BaseController 以后所有需要用到的地方都繼承BaseController
public class BaseController : Controller { private Setting Config; public BaseController( IOptions<Setting> setting) { Config = setting.Value; } }
我們此時來運行一下看下代碼結果
此時我們可以看到已經取值成功,以后哪里需要用到的就可以通過Config.屬性的方法去取