ShowProgramCode

2022年12月15日 星期四

C# .net Core6 主控台使用強行別讀取 AppSetting.json

在主控台讀取設定檔有兩種格式:
  1.  .Xml
  2.  .Json
現在我要記錄的是第二種.json的格式該如何在主控台的專案使用強型別讀取。
首先,在專案的最上層新增一個appsetting.json檔案
接著,新增一個物件檔,處理設定檔的讀取。
  1. internal class ConfigHelp
  2. {
  3. private readonly IConfigurationRoot config;
  4. public ConfigHelp()
  5. {
  6. config = new ConfigurationBuilder()
  7. .SetBasePath(Directory.GetCurrentDirectory())
  8. .AddJsonFile("appsetting.json", true)
  9. .Build();
  10. }
  11. public void Get<T>(string configName, ref T resp)
  12. {
  13. config.GetSection(configName).Bind(resp);
  14. }
  15. public string? Get(string configName)
  16. {
  17. return config[configName];
  18. }
  19. }
appsetting.json檔案
  1. {
  2. "Setting": {
  3. "MinThreads": 2,
  4. "MaxThreads": 3,
  5. "TestTimes": 300
  6. }
  7. }
設定檔的DTO
  1. public class Setting
  2. {
  3. public int MinThreads { get; set; }
  4. public int MaxThreads { get; set; }
  5. public int TestTimes { get; set; }
  6. }
實際主控台程式讀取。
  1. internal class Program
  2. {
  3. private static Setting setting = new Setting();
  4. static void Main(string[] args)
  5. {
  6. ConfigHelp config = new ConfigHelp();
  7. config.Get("Setting", ref setting);
  8. }
  9. }

沒有留言:

張貼留言