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

简介: 添加通用读取配置文件功能在Wsk.Core.Package项目下,新增Microsoft.Extensions.Configuration包:


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


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


1995789-20210602230453817-2038408030.png

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


1995789-20210602230503733-1101209963.png

 

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


 1995789-20210602230515977-1247826074.png

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


1995789-20210602230533982-1352053681.png


代码:

 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;
        }
    }


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

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


1995789-20210602230818190-1824538391.png


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


1995789-20210602230832516-1733469400.png


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


1995789-20210602230847686-718824267.png


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

 1995789-20210602230902493-587625115.png


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


1995789-20210602230917782-1633186734.png


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

 

1995789-20210602230934121-1698125422.png

 

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

1995789-20210602230949883-616902540.png


json内容:


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

 

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

1995789-20210602231040867-889050017.png

 

示例代码:


[HttpPost]
        public IActionResult HelloWorld()
        {
           string a= AppHelper.ReadAppSettings("Test", "A");
            string b = AppHelper.ReadAppSettings("Test", "B", "C");
            return Ok($"{a} ***** {b}");
        }


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


1995789-20210602231134756-1346721899.png

 

目录
相关文章
|
9月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
1304 3
|
6月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
538 6
|
Shell 网络安全 C#
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
428 4
|
11月前
|
缓存 开发框架 .NET
一个功能丰富的 .NET 工具库 XiHan.Framework.Utils
XiHan.Framework.Utils 是一个功能全面的 .NET 工具库,包含字符串处理、集合扩展、加密解密、分布式 ID、文件操作、缓存、线程、国际化等模块。设计上注重高内聚、低耦合,适用于各类 .NET 应用开发。支持 AES 加密、树形结构转换、分页过滤、日志输出等功能,提供简单易用的 API。可通过 NuGet 快速安装,源码开放,采用 MIT 协议。
393 56
|
10月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
344 0
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
536 12
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
267 9
|
网络协议 C#
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
251 10
|
XML C# 数据格式
一个.NET开源、免费、功能强大的 PDF 处理工具
一个.NET开源、免费、功能强大的 PDF 处理工具
575 8
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
603 5