ASP.NET Core 中的設定是使用一或多個組態提供者 (Configuration Providers)來執行。組態提供者可以從各種來源取得組態設定資料
利用 .NET CLI 或是VS等開發工具建立的ASP.NET Core應用程式會產生下列程式碼
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
ConfigureWebHostDefaults
會依照下列順序提供應用程式的預設組態
ConfigureWebHostDefaults
在Host實體化之後建立IConfiguration的實體,並放到DI容器中,所以除了在Starup中取得之外,在Controller或是其他類別中也能夠過DI的注入取得設定
接著實際操作一次建立設定檔並從Startup中讀取設定
首先先在appsettings.json中加入
"ConnectionStrings": {
"DefaultConnection": "server=localhost;Port=3306 ......"
}
接著在Starup.ConfigureServices
把註冊DBConext的地方做些修改,修改為讀取設定檔的內容
services.AddDbContext<BlogDbContext>(options =>
options.UseMySql(
Configuration.GetConnectionString("DefaultConnection")));
Configuration取得設定檔的方式有兩種Configuration.GetConnectionString("DefaultConnection")
Configuration.["ConnectionString.DefaultConnection"]
參考資料
Configuration in ASP.NET Core