ConfigUtil.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using Microsoft.Extensions.Configuration;
  2. using Microsoft.Extensions.Configuration.Json;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.FileProviders;
  5. using Microsoft.Extensions.Options;
  6. using System;
  7. using System.IO;
  8. namespace Wms.Screen.Util.Comm
  9. {
  10. public class ConfigUtil
  11. {
  12. private static IConfiguration _config;
  13. public static IConfiguration GetConfiguration
  14. {
  15. get
  16. {
  17. if (_config != null) return _config;
  18. var configBuilder =
  19. new ConfigurationBuilder()
  20. .SetBasePath(AppContext.BaseDirectory)
  21. .Add(new JsonConfigurationSource()
  22. {
  23. Path = "appsettings.json",
  24. ReloadOnChange = true,
  25. });
  26. //var builder = new ConfigurationBuilder()
  27. //.SetBasePath(Directory.GetCurrentDirectory())
  28. //.AddJsonFile("appsettings.json");
  29. _config = configBuilder.Build();
  30. return _config;
  31. }
  32. set { _config = value; }
  33. }
  34. public static string GetConnectionString(string key)
  35. {
  36. return GetConfiguration?.GetConnectionString(key);
  37. }
  38. public static IConfigurationSection GetSection(string key)
  39. {
  40. return GetConfiguration?.GetSection(key);
  41. }
  42. //public static T GetAppSettings<T>(string key, string configFileName = "appsettings.json", string basePath = "") where T : class, new()
  43. //{
  44. // //Microsoft.Extensions.Options.ConfigurationExtensions
  45. // basePath = string.IsNullOrWhiteSpace(basePath)
  46. // ? Directory.GetCurrentDirectory()
  47. // : Path.Combine(Directory.GetCurrentDirectory(), basePath);
  48. // var configuration = new ConfigurationBuilder().SetBasePath(basePath)
  49. // .AddJsonFile(configFileName, false, true)
  50. // .Build();
  51. // var appconfig = new ServiceCollection()
  52. // .AddOptions()
  53. // .Configure<T>(configuration.GetSection(key))
  54. // .BuildServiceProvider()
  55. // .GetService<IOptions<T>>()
  56. // .Value;
  57. // return appconfig;
  58. //}
  59. public static IConfigurationRoot GetJsonConfig(string configFileName = "appsettings.json", string basePath = "")
  60. {
  61. basePath = string.IsNullOrWhiteSpace(basePath)
  62. ? Directory.GetCurrentDirectory()
  63. : Path.Combine(Directory.GetCurrentDirectory(), basePath);
  64. var configuration = new ConfigurationBuilder().SetBasePath(basePath)
  65. .AddJsonFile(configFileName, false, true)
  66. .Build();
  67. return configuration;
  68. }
  69. //public static IConfigurationRoot GetXmlConfig(string configFileName = "appsettings.xml", string basePath = "")
  70. //{
  71. // basePath = string.IsNullOrWhiteSpace(basePath)
  72. // ? Directory.GetCurrentDirectory()
  73. // : Path.Combine(Directory.GetCurrentDirectory(), basePath);
  74. // var configuration = new ConfigurationBuilder().AddXmlFile(config =>
  75. // {
  76. // config.Path = configFileName;
  77. // config.FileProvider = new PhysicalFileProvider(basePath);
  78. // config.ReloadOnChange = true;
  79. // });
  80. // return configuration.Build();
  81. //}
  82. //public static IConfigurationRoot GetIniConfig(string configFileName = "appsettings.ini", string basePath = "")
  83. //{
  84. // basePath = string.IsNullOrWhiteSpace(basePath)
  85. // ? Directory.GetCurrentDirectory()
  86. // : Path.Combine(Directory.GetCurrentDirectory(), basePath);
  87. // var configuration = new ConfigurationBuilder().AddIniFile(config =>
  88. // {
  89. // config.Path = configFileName;
  90. // config.FileProvider = new PhysicalFileProvider(basePath);
  91. // config.ReloadOnChange = true;
  92. // });
  93. // return configuration.Build();
  94. //}
  95. }
  96. }