.NET Core 6.0之讀取配置檔案
導讀 | 在ASP.NET Core 6.0中,預設配置檔案是appsettings.json,該檔案儲存的內容為JSON格式的字串,我們一般都將程式的配置放在這個檔案裡面,提供給程式使用,那麼我們該如何操作呢? |
ASP.NET Core預設載入順序是appsettings.json->
appsettings.Environment.json,它會根據當前的執行環境去載入不同的配置檔案,最後
appsettings.Environment.json 值將替代 appsettings.json 中的值,如果沒有多個值,則取預設值。
在開始之前,我們先在appsettings.json中新增一些配置資訊
"Wechat": { "AppId": "wx26c607c55f31745e", "AppSecret": "e7da82499266ca3fdf85290f68f8fd3a" }
現在我們就嘗試讀取配置檔案中AppId和AppSecret的值,在Program.cs中,我們直接可以用WebApplicationBuilder裡面的Configuration屬性來讀取,取配置內容的方式有很多,比如:
string appId = builder.Configuration.GetSection("Wechat")["AppId"]; string appSecret = builder.Configuration.GetSection("Wechat")["AppSecret"];
還可以這樣
string appId1 = builder.Configuration["Wechat:AppId"]; string appSecret1 = builder.Configuration["Wechat:AppSecret"];
當然,它還可以更深的層級,如:builder.Configuration["AppConfig:Wechat:AppSecret"]
如果我們想在非Program.cs裡面讀取配置,則需要注入IConfiguration例項,其他操作方式便和前面的一致,我們還在來實踐一次,這裡我先新建一個Controller
[Route("api/[controller]")] [ApiController] public class ConfigurationController : ControllerBase { private readonly IConfiguration Configuration; public ConfigurationController(IConfiguration configuration) { Configuration = configuration; } [HttpGet] public string ReadConfig() { return Configuration["Wechat:AppId"]; } }
我們直接訪問api/Configuration,便能返回配置檔案中的AppId資訊,
如果配置檔案比較複雜,我們依然用前面的方式一個個的去取值,那確實有些繁瑣,所以,我們需要更高階的操作,直接把配置內容裝載到實體類中,這我新建一個名為WechatConfiguration的類,裡面加入與配置檔案對應的屬性
public class WechatConfiguration { public const string KEY = "Wechat"; public string AppId { get; set; } = String.Empty; public string AppSecret { get; set; } = String.Empty; }
這裡,我們需要使用的IConfiguration的GetSection方法來獲取指定節點的內容,然後使用Get將內容序列化為物件,看例子
Configuration.GetSection(WechatConfiguration.KEY).Get();
除了使用Get取值,還可使用Bind方法,將值繫結到物件上
WechatConfiguration wechatConfiguration = new WechatConfiguration(); Configuration.GetSection(WechatConfiguration.KEY).Bind(wechatConfiguration);
這兩種方式都能獲取到配置檔案修改後的內容,除了上面兩種方式獲取配置內容外,還可以使用直接將配置物件注入到容器中,
builder.Services.Configure(builder.Configuration.GetSection(WechatConfiguration.KEY));
然後在需要使用的類中注入IOptions,透過其Value屬性來獲取配置類物件
public class ConfigurationController : ControllerBase { private readonly IConfiguration Configuration; private readonly WechatConfiguration wechat; public ConfigurationController(IConfiguration configuration, IOptionsoptions) { Configuration = configuration; wechat = options.Value; } }
如果配置類過多,那麼在Program.cs便會顯得雜亂臃腫,所以,我們可以將其移動到擴充套件方法以註冊服務,這裡新建一個擴充套件類
ConfigServiceCollectionExtensions,將前面的程式碼移動到該類中
public static class ConfigServiceCollectionExtensions { public static IServiceCollection AddConfig(this IServiceCollection services, IConfiguration config) { services.Configure(config.GetSection(WechatConfiguration.KEY)); return services; } }
然後在Program.cs中新增引用即可
builder.Services.AddConfig(builder.Configuration);
配置檔案讀取就先了解這麼,明天就要開始上班了,又要忙起來了,後面有時間再繼續學習ASP.NET Core 中的路由。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2855520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- .NET Core基礎篇之:配置檔案讀取
- .net core 靈活讀取配置檔案
- Asp .Net Core 讀取appsettings.json配置檔案APPJSON
- 讀取.net core配置檔案appsetting.json內容APPJSON
- .NET Core中如何讀取appsetting.json配置檔案APPJSON
- ASP.NET Core - 配置系統之配置讀取ASP.NET
- Asp.net Core 和類庫讀取配置檔案資訊ASP.NET
- 八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能APP
- Asp.Net Core 3.1學習-讀取、監聽json配置檔案(7)ASP.NETJSON
- .net core使用配置檔案
- Asp.Net Core入門之配置檔案ASP.NET
- ASP.NET Core 配置檔案ASP.NET
- .NET Core 讀取配置技巧 - IOptions<TOptions> 介面
- IOC - 讀取配置檔案
- viper 讀取配置檔案
- go配置檔案讀取Go
- springboot讀取配置檔案Spring Boot
- .net core 獲取檔案MIME型別型別
- 重新整理 .net core 實踐篇—————配置檔案之環境配置[九]
- go 讀取.ini配置檔案Go
- java中讀取配置檔案Java
- ASP.Net Core 5.0 MVC AppSettings配置檔案讀取,Startup 類中ConfigureServices 方法、Configure 方法的使用ASP.NETMVCAPP
- .Net Core中的配置檔案原始碼解析原始碼
- Golang專案中讀取配置檔案Golang
- ASP.NET Core 中的檔案提供程式 遍歷資料夾讀取檔案資訊ASP.NET
- C#讀取Json配置檔案C#JSON
- shell讀取配置檔案-sed命令
- python怎麼讀取配置檔案Python
- Android讀取配置檔案的方法Android
- Spring之Property檔案讀取Spring
- 深入探究.Net Core Configuration讀取配置的優先順序
- 在.NET Core中用最原生的方式讀取Nacos的配置
- asp.net core 系列之靜態檔案ASP.NET
- kubernetes高階之建立只讀檔案系統以及只讀asp.net core容器ASP.NET
- 重新整理 .net core 實踐篇—————配置系統之軍令狀[七](配置檔案)
- C#讀取指定json配置檔案C#JSON
- python讀取yaml配置檔案的方法PythonYAML
- SpringBoot配置檔案讀取過程分析Spring Boot