八、.net core(.NET 6)配置读取appsettings文件内容的通用功能
添加通用读取配置文件功能
在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,看看返回的结果:
返回成功,此篇完结。如果有用,欢迎评论、打赏、点赞或转发。版权所有,转发请注明出处。
最新文章
- ubuntu14.04下安装node.js
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
- 我常用的eclipse快捷键
- const 指针的三种使用方式
- 【产品更新】EVC8013 硬件更新!
- 表连接到底咋回事,就是产生中间结果啊!用于给select/insert等操作用
- LA 4127 - The Sky is the Limit (离散化 扫描线 几何模板)
- 桂电在线-php-提取菜单到配置文件2
- List<;T>; ForEach break
- Mysql Explain 详解
- GDB单步调试程序
- C# DLL文件注册问题(涉及AxInterop.WMPLib.dll等)
- 201521123054《java程序设计》第12周学习总结
- oracle学习笔记(四) DQL数据查询语言和TCL 事务控制语言
- win8.1 AMD 屏幕亮度无法调整
- Jmeter GIS调用-->;参数化+正则表达式提取器+后置处理器+逻辑控制器
- 《http权威指南》读书笔记1
- PHP从入门到精通(六)
- Object类--equals方法
- IntelliJ IDEA平台下JNI编程(五)—本地C代码创建Java对象及引用