前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用.Net5尝鲜的一些小总结及Configuration.Json读取配置文件的使用

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

作者头像
Vaccae
发布2021-01-06 15:56:06
1.7K0
发布2021-01-06 15:56:06
举报
文章被收录于专栏:微卡智享微卡智享

学更好的别人,

做更好的自己。

——《微卡智享》

本文长度为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还实现分组求和的查询,列下代码,后面也会单独讲一下这个的使用方法和场景。

代码语言:javascript
复制
        /// <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的配置,代码如下:

代码语言:javascript
复制
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中设置了数据库的参数配置,读取的方式就是直接调用

代码语言:javascript
复制
 //读取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使用及修改显示图像

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用的包
  • 使用的总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档