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

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

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

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

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

代码:

  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方法:

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

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

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

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

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

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

json内容:

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

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

示例代码:

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

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

返回成功,此篇完结。如果有用,欢迎评论、打赏、点赞或转发。版权所有,转发请注明出处。

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

  1. 五种方式让你在java中读取properties文件内容不再是难题

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  2. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  3. QML 读取本地文件内容

    QML 对本地文件的读写 QML 里似乎没有提供直接访问本地文件的模块,但是我们能够自己扩展 QML,给它加上访问本地文件的能力. Qt 官方文档对 QML 是这样介绍的: It defines an ...

  4. PHP读取Excel文件内容

    PHP读取Excel文件内容   项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel.   PHPExcelReader比较 ...

  5. 手工创建tomcat应用,以及实现js读取本地文件内容

    手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...

  6. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  7. java读取txt文件内容

    package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...

  8. 读取Pdm文件内容(含源码)

    Pdm文件,就是PowerDesigner软件生成的文件,用来设计数据库表结构非常适合.其实,它的文件存储格式就是Xml,网上有很多代码,可以读取pdm文件内容.代码可以使用,但一般只能读取简单的pd ...

  9. Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中

    package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...

随机推荐

  1. aws EKS EFS storageclass PV PVC Pod

    storageclass [root@localhost specs]# cat storageclass.yaml kind: StorageClass apiVersion: storage.k8 ...

  2. 如何把 Caffeine Cache 用得如丝般顺滑?

    一.关于 Caffeine Cache 在推荐服务中,虽然允许少量请求因计算超时等原因返回默认列表.但从运营指标来说,越高的"完算率"意味着越完整的算法效果呈现,也意味着越高的商业 ...

  3. CVPR2021 | 华为诺亚实验室提出Transformer in Transformer

    前言: transformer用于图像方面的应用逐渐多了起来,其主要做法是将图像进行分块,形成块序列,简单地将块直接丢进transformer中.然而这样的做法忽略了块之间的内在结构信息,为此,这篇论 ...

  4. 1.1.08- Python变量的关联,绑定,引用

    Python中关联.绑定,引用的含义: 在Python中,变量没有类型 关联/绑定/引用都是指变量和一个对象的关联关系. 在交互模式下查看变量的绑定关系: >>>help(" ...

  5. chrom里面的performance 颜色

    在network里面,在network里面,在network里面(重要事件说三遍) : 1. HTML 文件为蓝色. 2. 脚本为黄色. 3. 样式表为紫色. 4. 媒体文件为绿色. 5. 其他资源为 ...

  6. Msfvenonm生成一个后门木马

    在前一篇文章中我讲了什么是Meterpreter,并且讲解了Meterpreter的用法.传送门-->Metasploit之Meterpreter 今天我要讲的是我们用Msfvenom制作一个木 ...

  7. python 压缩模块大杂烩(zipfile,bz2,lzma,gzip,tarfile,zlib)

    [*] 以下压缩模块请结合python的官方文档(https://docs.python.org/3.5/library/index.html)来实践或者对比(我的是python 3.5) 1.pyt ...

  8. URL中字符的含义

    目录 URL中的特殊字符 #号的作用 URL中的特殊字符 我们经常会看到URL中有一些特殊的字符,比如 #,?,& ,/ ,+ 等.那么,它们的含义是什么呢? 特殊含义 十六进制 + 表示空格 ...

  9. Photoshop 第二课 工具-钢笔的使用

    钢笔的使用 钢笔→ 是一个非常实用(主要用于)但是非常难操作(会者不难哦~)的工具. 钢笔属性中有三种状态:1.路径:2.形状:3.像素.其中路径和形状是我们最常用的状态.路径是一条用来圈定需要操作的 ...

  10. XCTF-supersqli

    supersqli 进来有个输入框,看内容应该是var_dump了sql查询结果 单引号有报错,万能语句能用,注释符#没被ban 打了个union select,给提示ban了一堆关键字,而且忽略大小 ...