ASP.NET Core 簡易讀取 appsettings.json 方式
在 ASP.NET Core 底下讀取 appsettings.json 其實很容易,但常常要用到時就會想不起來,故做個筆記。
以下是 appsettings.json 檔案的範例:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Aaa3": "test value",
"Obj": {
"Field1": "1",
"Field2": "2"
}
}
我寫了一個簡單的 helper,讓 Controller 跟 ASP.NET Core 的 IConfiguration 沒有相依性:
using Microsoft.Extensions.Configuration;
namespace FileUploadWebAP.Helpers
{
public static class Utilities
{
public static IConfiguration Configuration = null;
public static T GetValueFromAppSettingsAndByKey<T>(string key)
{
return Configuration.GetSection(key).Get<T>();
}
public static string GetValueByKey(string key)
{
return Configuration.GetValue<string>(key);
}
}
}
這支 helper 的功能很簡單,就提供兩個函式,分別可以取得字串或物件,以下是設定方法及使用方式:
在 Startup.cs 中:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
Helpers.Utilities.Configuration = Configuration;
}
使用方式:
public class TestClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
string aaa3 = Helpers.Utilities.GetValueByKey("Aaa3");
string val = Helpers.Utilities.GetValueByKey("Obj:Field1");
TestClass inst = Helpers.Utilities.GetValueFromAppSettingsAndByKey<TestClass>("Obj");