.NET6 讀取appsettings.json


1、安裝所有NuGet包

2、上代碼

2.1 新建helper類

private static IConfiguration _config;

        public AppsettingHelper(IConfiguration configuration)
        {
            _config = configuration;
        }

        /// <summary>
        /// 讀取appsettting.json文件
        /// </summary>
        /// <param name="key">待讀取的配置文件中的key</param>
        /// <param name="IsConn">是否讀要取配置文件中的數據庫鏈接串,默認false</param>
        /// <returns>配置文件中key對應的value值,如果key空則返回NULL</returns>
        public static string Get(string key, bool IsConn = false)
        {
            string value = null;
            try
            {
                if (string.IsNullOrWhiteSpace(key))
                {
                    return null;
                }
                //引用Microsoft.Extensions.Configuration;
                var Configuration = new ConfigurationBuilder()
                .SetBasePath(System.IO.Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .AddJsonFile("appsettings.test.json", true, reloadOnChange: true);

                var config = Configuration.Build();
                if (IsConn)
                    value = config.GetConnectionString(key);
                else
                    value = config[key];
            }
            catch (Exception ex)
            {
                value = null;
            }
            return value;
        }

        /// <summary>
        /// 讀取實體信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="session"></param>
        /// <returns></returns>
        public static List<T> Get<T>(params string[] session)
        {
            List<T> list = new List<T>();
            _config.Bind(string.Join(":", session), list);
            return list;
        }

2.2 Program.cs注入服務

IConfiguration configuration = new ConfigurationBuilder()
                            .AddJsonFile("appsettings.json")
                            .Build();
builder.Services.AddSingleton(new Y.WebAPI.Utility.AppsettingHelper(configuration));

2.3 定義配置文件節點類

   public class RabbitMQConfig
    {
        public string HostName { set; get; }
        public string Port { set; get; }
        public string UserName { set; get; }
        public string Password { set; get; }
        public List<string> QueueName { set; get; }
    }

2.4 使用

 List<RabbitMQConfig> rabbitMQs = AppsettingHelper.Get<RabbitMQConfig>("RabbitMQ");

3、appsettings.json文件

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "RabbitMQ": [
    {
      "HostName": "192.168.1.1",
      "Port": "0000",
      "UserName": "user1",
      "Password": "111111",
      "QueueName": [ "Y.Queue1"]
    }
  ]
}

 

 

 

 

參考:https://blog.csdn.net/runliuv/article/details/122484173


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM