八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

导读:本篇文章讲解 八、.net core(.NET 6)配置读取appsettings文件内容的通用功能,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 添加通用读取配置文件功能

在Wsk.Core.Package项目下,新增Microsoft.Extensions.Configuration包:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

在启动项目下,设置appsettings.json属性为始终复制:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

新建一个文件夹Common,用于存放工具类项目。并且新建项目:Wsk.Core.AppSettings,引用package包项目,然后新建一个读取配置文件的通用类,叫AppHelper。目录结构如图:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

在AppHelper类里面,新建静态操作方法有关代码,用于读取根目录下的配置文件信息:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

代码:

  public class AppHelper
    {
        private static IConfiguration _config;

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

        /// <summary>
        /// 读取指定节点的字符串
        /// </summary>
        /// <param name="sessions"></param>
        /// <returns></returns>
        public static string ReadAppSettings(params string[] sessions)
        {
            try
            {
                if (sessions.Any())
                {
                    return _config[string.Join(":", sessions)];
                }
            }
            catch
            {
                return "";
            }
            return "";
        }

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

View Code

在启动项目下,新建文件夹ConfigServices,用于存放各种服务的添加项目。

现在,看下目前的启动项下的ConfigureServices方法:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

我们把该方法做个简化。在ConfigServices下新建一个静态类,叫 WskService,用于写入各种自带的方法进行集成;再新建一个静态类SwaggerService,用于存放Swagger功能的集成:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

然后,把swagger的功能进行移植,在SwaggerService类下面进行注册:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

再把上面有一个添加控制器的功能进行注册到WskService下面。然后,把对swagger的注册也加入到该服务下:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

最后,在ConfigureServices下面把所有内容删掉,然后添加WskServices的注册:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

接下来,添加对刚刚我们写的读取配置文件类的注册。在ConfigureServices里面进行添加注册单例模式,放在注册服务的最上面,这样其他服务就可以在注册时候也可以引用该功能进行读取配置文件了:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

现在做个测试,在配置文件里面新建一段配置信息:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

json内容:

 "Test": {
    "A": "Hello",
    "B": {
      "C": "World"
    }
  }

在控制器方法里面,做个打印测试:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

示例代码: 

 [HttpPost]
        public IActionResult HelloWorld()
        {

           string a= AppHelper.ReadAppSettings("Test", "A");
            string b = AppHelper.ReadAppSettings("Test", "B", "C");
            return Ok($"{a} ***** {b}");
        }

View Code

启动程序,并执行api,看看返回的结果:

 

八、.net core(.NET 6)配置读取appsettings文件内容的通用功能

返回成功,此篇完结。如果有用,欢迎评论、打赏、点赞或转发。版权所有,转发请注明出处:https://www.cnblogs.com/weskynet/p/14843324.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120979.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!