zoukankan      html  css  js  c++  java
  • .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

    版权声明

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

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

  • 相关阅读:
    移动app测试浅析
    Instruments 使用指南
    手机APP测试的几大点
    Python之路【目录】
    Delphi TreeView – 自动展开树形结构
    Delphi TreeView – 自动给标题上加图片
    Delphi 发送邮件 通过Office Outlook
    Delphi Create(nil), Create(self), Create(Application)的区别
    Delphi StringReplace – 替换字符函数
    Delphi MessageBox
  • 原文地址:https://www.cnblogs.com/Cwj-XFH/p/8522450.html
Copyright © 2011-2022 走看看