.Net Core控制台程序读取Json配置文件

1 添加依赖(可以直接通过nuget包安装 Microsoft.Extensions.Configuration.Json 这个会依赖其他两个会自动安装依赖的)

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.FileExtensions

   Microsoft.Extensions.Configuration.Json

2. 在项目中添加Json配置文件并将其“复制到输出目录”属性设置为“始终复制”

3.读取配置的类

#region Description
/**
 *  通过 Nuget 安装依赖 Microsoft.Extensions.Configuration.Json
 *  新增JSON文件,需要设置 属性-> 生成操作:内容  复制到输出目录:始终复制
 */
#endregion
using Microsoft.Extensions.Configuration;
using System.IO;

namespace DaemonJos
{
    public class Configuration
    {
        static readonly string CONFIG_FILE = "AppConfig.json";  // 配置文件地址

        static IConfiguration Configs;

        /// <summary>
        /// 获取配置文件的配置节点
        /// </summary>
        /// <param name="configKey">多个节点可以用英文.号隔开</param>
        /// <returns></returns>
        public static string GetConfiguration(string configKey)
        {
            if (Configs == null)
            {
                var build = new ConfigurationBuilder();
                build.SetBasePath(Directory.GetCurrentDirectory());  // 获取当前程序执行目录
                build.AddJsonFile(CONFIG_FILE, true, true);
                Configs = build.Build();
            }

            if (configKey.Contains("."))
            {
                IConfigurationSection child = null;
                foreach (string key in configKey.Split('.'))
                {
                    if (child == null)
                        child = Configs.GetSection(key);
                    else
                        child = child.GetSection(key);
                }

                return (child == null) ? "" : child.Value;
            }
            else
            {
                return Configs.GetSection(configKey).Value;
            }
        }
    }
}

 

4.调用

static void Main(string[] args)
{
  Console.WriteLine("Hello World!");
  string sqlStr = Configuration.GetConfiguration("ConnectionStrings.ConfigurationInDB");
  Console.WriteLine(Configuration.GetConfiguration("BasePath"));
  Console.WriteLine(sqlStr);

  Console.ReadKey();
}

 

参考链接:

https://www.cnblogs.com/fanqisoft/p/10806799.html

posted @ 2021-08-20 15:37  梨花大将  阅读(570)  评论(0编辑  收藏  举报