AppSettings.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Microsoft.Extensions.Configuration;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace wms.util
  6. {
  7. public class AppSettings
  8. {
  9. static IConfiguration Configuration { get; set; }
  10. public AppSettings(IConfiguration configuration)
  11. {
  12. Configuration = configuration;
  13. }
  14. /// <summary>
  15. /// 封装要操作的字符
  16. /// </summary>
  17. /// <param name="sections">节点配置</param>
  18. /// <returns></returns>
  19. public static string App(params string[] sections)
  20. {
  21. try
  22. {
  23. if (sections.Any())
  24. {
  25. return Configuration[string.Join(":", sections)];
  26. }
  27. }
  28. catch (Exception ex)
  29. {
  30. Console.WriteLine(ex.Message);
  31. }
  32. return "";
  33. }
  34. /// <summary>
  35. /// 递归获取配置信息数组
  36. /// </summary>
  37. /// <typeparam name="T"></typeparam>
  38. /// <param name="sections"></param>
  39. /// <returns></returns>
  40. public static List<T> App<T>(params string[] sections)
  41. {
  42. List<T> list = new List<T>();
  43. // 引用 Microsoft.Extensions.Configuration.Binder 包
  44. Configuration.Bind(string.Join(":", sections), list);
  45. return list;
  46. }
  47. public static T Bind<T>(string key, T t)
  48. {
  49. Configuration.Bind(key, t);
  50. return t;
  51. }
  52. public static T GetAppConfig<T>(string key, T defaultValue = default)
  53. {
  54. T setting = (T)Convert.ChangeType(Configuration[key], typeof(T));
  55. var value = setting;
  56. if (setting == null)
  57. value = defaultValue;
  58. return value;
  59. }
  60. /// <summary>
  61. /// 获取配置文件
  62. /// </summary>
  63. /// <param name="key">eg: WeChat:Token</param>
  64. /// <returns></returns>
  65. public static string GetConfig(string key)
  66. {
  67. return Configuration[key];
  68. }
  69. }
  70. }