• .NET Core类库中读取配置文件


    最近在开发基于.NET Core的NuGet包,遇到一个问题:
    .NET Core中已经没有ConfigurationManager类,在类库中无法像.NET Framework那样读取App.configWeb.config(.NET Core中是appsetings.json)文件中的数据。

    但,我们可以自己写少量代码来实现在类库中读取配置文件信息。

    思路:

    先在当前目录下寻找appsettings.json文件

    • 若存在,则读取改文件中的配置信息
    • 不存在,则到根目录中寻找appsettings.json文件

    具体做法如下:

    1. 使用NuGet安装Microsoft.Extensions.Configuration.Json

    2. 实现代码

    public static class ConfigHelper
    {
        private static IConfiguration _configuration;
    
        static ConfigHelper()
        {
            //在当前目录或者根目录中寻找appsettings.json文件
            var fileName = "appsettings.json";
    
            var directory = AppContext.BaseDirectory;
            directory = directory.Replace("\", "/");
    
            var filePath = $"{directory}/{fileName}";
            if (!File.Exists(filePath))
            {
                var length = directory.IndexOf("/bin");
                filePath = $"{directory.Substring(0, length)}/{fileName}";
            }
    
            var builder = new ConfigurationBuilder()
                .AddJsonFile(filePath, false, true);
    
            _configuration = builder.Build();
        }
    
        public static string GetSectionValue(string key)
        {
            return _configuration.GetSection(key).Value;
        }
    }

    测试

    在根目录下或当前目录下添加appsetting.json文件,并添加节点:

    {
      "key": "value"
    }

    测试代码如下:

    public class ConfigHelperTest
    {
        [Fact]
        public void GetSectionValueTest()
        {
            var value = ConfigHelper.GetSectionValue("key");
            Assert.Equal(value, "value");
        }
    }

    测试通过:

     
     

    顺道安利下一款用于.NET开发的跨平台IDE——Rider,以上代码均在Rider中编写。

    这是NuGet包项目地址:https://github.com/CwjXFH/WJChiLibraries,希望大家多多指点。

    相关阅读

    Configure an ASP.NET Core App

    版权声明

    本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

    如有问题, 请发送邮件和作者联系。

  • 相关阅读:
    Datatable导出到Excel
    C# 连接EXCEL和ACCESS字符串2003及2007版字符串说明
    C#-读取写入Excel
    简易的命令行入门教程:
    日志记录
    python环境管理器的选择
    go语言的模块处理
    pip 使用国内源 安装类库
    go 实现单链表并使用一种常规实现翻转,一种使用递归实现翻转
    数据库产品选型
  • 原文地址:https://www.cnblogs.com/Cwj-XFH/p/8522450.html
Copyright © 2020-2023  润新知