使用.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_Infos
                                                   from b in drugs
                                                   where a.gcode == b.gcode
                                                   group a by new { a.gcode, b.gname }
                               into item
                                                   select 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;
        }

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

一些碎碎念完了后,就该说一下正题了,这篇主要就是说一下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使用及修改显示图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值