.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 @   梨花大将  阅读(624)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示