700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用.Net5尝鲜的一些小总结及Configuration.Json读取配置文件的使用

使用.Net5尝鲜的一些小总结及Configuration.Json读取配置文件的使用

时间:2021-07-28 09:01:58

相关推荐

使用.Net5尝鲜的一些小总结及Configuration.Json读取配置文件的使用

学更好的别人,

做更好的自己。

——《微卡智享》

本文长度为2845,预计阅读6分钟

前言

微信的,net5也发布了一个多月了,正好刚出差回来,公司里展厅的设备需要做一个模拟的场景数据,借这个机会就直接用,net5做开发,现在也内部布置使用着,这篇就大概讲一下使用.net5的过程中遇到的情况,个别问题会拿出单篇来说。

.net5初体验

微卡智享

其实做的这个程序也挺简单的,基本就是一个webapi,然后加入的定时每天模拟产生新的数据插入到数据库中。

使用的包

Quartz:定时任务。这个在《项目实战|C#Socket通讯方式改造(二)--利用Quartz实现定时任务处理》中有介绍过,不过在.net5或是.net core中使用和.net Framework中有点差别,我会单独再开一篇说一下。

SqlSugar:数据库的ORM,以前的文章中有专门介绍过这个的使用,我觉得挺不错的,并且有个项目生产环境中也用到了,使用的也很稳定,.net core中也在专门的Nuget包,这个就不再多说了。

Log4Net:记录日志,这个在.net core的使用中网上有很多,和.net 5使用方式是一样的。

Configuration.Json:读取配置文件,在.net framework的项目中基本都使用读取.config文件,当然我个人更习惯使用ini的文件。而在.net 5创建的项目中配置文件改为了appsettings.json,即然是用新的,所以项目中也使用了读取appsettings,觉得还是挺不错的。

使用的总结

最让我觉得不错的是创建的.net5的项目自动集成了Swagger中间件了,做Api的同学应该会很喜欢 ,调试非常的简单。

调试运行的时候默认就启动了这个UI界面

点击后可以直接看到API调用返回的值,也可以直接设置断点进行调试。

项目中也重新使用了Linq,其实直接用SqlSugar从数据库里取数也是可以的,但是不想多次进行数据库操作,所以改用了Linq还实现分组求和的查询,列下代码,后面也会单独讲一下这个的使用方法和场景。

/// <summary>/// 根据医嘱单生成补药数据/// </summary>/// <param name="orderno"></param>/// <returns></returns>public static List<Replenish_Info_SPD> getAutoReplenishFromPicks(string orderno, List<Pick_Info> pick_Infos){//1.获取药品信息数据List<Drugs> drugs = DrugInfoApi.getDrugs();//2.生成补药单数据List<Replenish_Info_SPD> createlist = (from a in pick_Infosfrom b in drugswhere a.gcode == b.gcodegroup a by new { a.gcode, b.gname }into itemselect new Replenish_Info_SPD{no1 = orderno,gcode = item.Key.gcode,gname = item.Key.gname,qty = item.Sum(a => a.ACTUAL_SHIPPED_QUANTITY)}).ToList();return createlist;}

除了上面这些掌握的东西外,项目做完发布的时候遇到了让我最头疼的问题,自己机器测试的都没什么问题,但是在服务器上发布真是搞了我好久,当然也是因为服务的操作系统也老了一点(win),整个项目发布成功大概花了我三天时间才解决。关于.net 5或是.net core在win发布我也会详细整理一篇文章出来。

一些碎碎念完了后,就该说一下正题了,这篇主要就是说一下Configuration.Json的使用,让我们配置文件直接使用项目自带的appsetting.json即可。

Configuration.Json使用

01

安装Nuget包

在管理Nuget包中搜索到Microsoft.Extensions.Configuration.Json进行安装。

02

配置startup.cs

在Startup文件里面定义了IConfiguration接口,然后构造函数中加入为接口IConfiguration的参数。

03

设置读取json配置的类

新建了一个ConfigHelper的类,用于读取Json的配置,代码如下:

using Microsoft.Extensions.Configuration;using System;using System.Collections.Generic;using System.IO;using System.Text;namespace MedicalPaltform.Utils{/// <summary>/// 获取appsettings.json参数/// </summary>public 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;}}}

04

读取appsettings.json配置

appsettings.json中设置了数据库的参数配置,读取的方式就是直接调用

//读取SQL的各个参数string server = ConfigHelper.GetSectionValue("Znyg:SrvName");string database = ConfigHelper.GetSectionValue("Znyg:DbName");string uid = ConfigHelper.GetSectionValue("Znyg:UserId");string pwd = ConfigHelper.GetSectionValue("Znyg:UserPsw");

可以看到上图中这几个参数的属性都是放到了Znyg的下面,要读取的时候每一级里面加入:即可。

这样就可以实现appsettings.json的配置参数读取了。

扫描二维码

获取更多精彩

微卡智享

「 往期文章 」

Android CameraX NDK OpenCV(二)-- 实现Dnn人脸检测

Android CameraX NDK OpenCV(一)--实时灰度图预览

Android JetPack组件CameraX使用及修改显示图像

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。