ConfigHelper.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.IO;
  3. using Microsoft.Extensions.Configuration;
  4. namespace Admin.Core.Common.Helpers
  5. {
  6. /// <summary>
  7. /// 配置帮助类
  8. /// </summary>
  9. public class ConfigHelper
  10. {
  11. /// <summary>
  12. /// 加载配置文件
  13. /// </summary>
  14. /// <param name="fileName">文件名称</param>
  15. /// <param name="environmentName">环境名称</param>
  16. /// <param name="reloadOnChange">自动更新</param>
  17. /// <returns></returns>
  18. public IConfiguration Load(string fileName, string environmentName = "", bool reloadOnChange = false)
  19. {
  20. var filePath = Path.Combine(AppContext.BaseDirectory, "configs");
  21. if (!Directory.Exists(filePath))
  22. return null;
  23. var builder = new ConfigurationBuilder()
  24. .SetBasePath(filePath)
  25. .AddJsonFile(fileName.ToLower() + ".json", true, reloadOnChange);
  26. if (environmentName.NotNull())
  27. {
  28. builder.AddJsonFile(fileName.ToLower() + "." + environmentName + ".json", true, reloadOnChange);
  29. }
  30. return builder.Build();
  31. }
  32. /// <summary>
  33. /// 获得配置信息
  34. /// </summary>
  35. /// <typeparam name="T">配置信息</typeparam>
  36. /// <param name="fileName"></param>
  37. /// <param name="environmentName">文件名称</param>
  38. /// <param name="reloadOnChange">自动更新</param>
  39. /// <returns></returns>
  40. public T Get<T>(string fileName, string environmentName = "", bool reloadOnChange = false)
  41. {
  42. var configuration = Load(fileName, environmentName, reloadOnChange);
  43. if (configuration == null)
  44. return default;
  45. return configuration.Get<T>();
  46. }
  47. }
  48. }