Read appsettings.json in .Net Core Console Application
前言
在.Net Core Console應用程式中,預設新增項目沒有Web專案的appsettings.json,只好自己動手來
實作
本文環境Visual Studio 2019 版本16、.Net Core Console 2.2
對著專案右鍵加入>新增項目
選擇JSON檔案,自行命名為appsettings.json
即使Visual Studio 2019,剛加入的JSON檔案預設仍然不是UTF8編碼,不支援中文,還得自行到檔案總管用記事本打開使用UTF8存檔覆蓋
在Visual Studio中再對著JSON檔案右鍵>屬性
確認在專案建置的時候,此檔案會「永遠複製」輸出到.dll檔同個目錄
以下是我appsettings.json的內容
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\sqlexpress2014;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"SystemName": "ACCD711D7"
}
接著對專案右鍵>管理Nuget套件,搜尋 Microsoft.Extensions.Configuration.Json 加入專案,準備讀取JSON檔中的內容
※過程中也會把相關聯的Microsoft.Extensions.Configuration.FileExtenstions、Newtonsoft.Json一併安裝
以下是讀取組態檔的程式碼
using System;
/*引用命名空間*/
using Microsoft.Extensions.Configuration;
namespace Console_ConfigTest
{
class Program
{
static void Main(string[] args)
{
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional:true,reloadOnChange: true)
.Build();
//取得連線字串
string connString = config.GetConnectionString("DefaultConnection");
//取得自定義組態內容
string SystemName = config["SystemName"];
Console.WriteLine($@"連線字串:{connString}");
Console.WriteLine($@"自定義:{SystemName}");
}//end Main Function
}
}
執行結果: