首页 > 其他分享 >我喜欢的.NET8 Preview 1功能

我喜欢的.NET8 Preview 1功能

时间:2023-07-25 21:13:15浏览次数:39  
标签:customer Console JsonSerializer UnsafeRelaxedJsonEscaping 喜欢 NET8 new Preview

  .NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8 Preview1,中间有两个功能是我的痛点,先睹为快。

  在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命名与官方规则最为接近,但数据库或前端就不是了,特别有些数据库对大小写敏感,或不支持大写,这就需要单独处理maping关系了,下面的json的SnakeCase命名规则,就解决大问题了,上代码:

using System.Text.Encodings.Web;
using System.Text.Json;

var customer = new { ID = 1, PizCode="1234567",FirstName="素伟",LastName="桂" };

Console.WriteLine(JsonSerializer.Serialize(customer, new JsonSerializerOptions { 
    PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
    Encoder=JavaScriptEncoder.UnsafeRelaxedJsonEscaping
}));

Console.WriteLine(JsonSerializer.Serialize(customer, new JsonSerializerOptions {
    PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseUpper,
    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
}));

Console.WriteLine(JsonSerializer.Serialize(customer, new JsonSerializerOptions {
    PropertyNamingPolicy = JsonNamingPolicy.KebabCaseLower,
    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
}));

Console.WriteLine(JsonSerializer.Serialize(customer, new JsonSerializerOptions {
    PropertyNamingPolicy = JsonNamingPolicy.KebabCaseUpper,
    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
}));

  下面是几个新的规则的运行结果:

 

  另一个点是在路由格式化,在.NET8中,对路由中的{}作了特列处理,更厉害的是还支持正则。

app.MapGet("/test/{id:int}", (int id) => { return $"你好:{id}"; });
app.MapGet("/orders/{tel:regex(^\\d{{3,4}}(-\\d{{4}}){{2}}$)}", (string tel) => { return $"电话:{tel}"; });

  VistalStudio中的效果图

 结果1:

结果2:

 

  想要更快更方便的了解相关知识,可以关注微信公众号 

 

标签:customer,Console,JsonSerializer,UnsafeRelaxedJsonEscaping,喜欢,NET8,new,Preview
From: https://www.cnblogs.com/axzxs2001/p/17581033.html

相关文章

  • 我喜欢的.NET8 Preview 1功能
    .NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8Preview1,中间有两个功能是我的痛点,先睹为快。在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命......
  • 记录--为啥面试官总喜欢问computed是咋实现的?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助从computed的特性出发computed最耀眼的几个特性是啥?1.依赖追踪import{reactive,computed}from'vue'conststate=reactive({a:1,b:2,c:3,})constsum=computed(()=>{returnstat......
  • VMware Workstation 18 Tech Preview - 增强的 Windows 11 虚拟机安全性
    VMwareWorkstation18TechPreview-增强的Windows11虚拟机安全性VMwareWorkstationTechPreview2023请访问原文链接:https://sysin.org/blog/vmware-workstation-18/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org原文作者:MichaelRoyJuly13,2023准备......
  • 喜欢的诗句摘抄(关于形容人美丽的)
    1.形容人美丽的诗句:众里嫣然通一顾,人间颜色如尘土。---王国维的《蝶恋花·窈窕燕姬年十五》解析:她在人群中回眸一笑,可以让其它女人失去颜色。兰有秀兮菊有芳,怀佳人兮不能忘。---刘彻的《秋风辞》解析:她在人群中回眸一笑,可以让其它女人失去颜色。解析:秀美的是兰花呀,芳香......
  • .Net8的AOT引导程序BootStrap
    前言.Net8的本地预编机器码AOT,它几乎进行了100%的自举。微软为了摆脱C++的钳制,做了很多努力。也就是代码几乎是用C#重写,包括了虚拟机,GC,内存模型等等。而需要C++做的,也就仅仅是引导程序,本篇通过代码来看下这段至关重要的引导程序的运作模式。原文:.Net8的AOT引导程序BootStrap概......
  • 【转】为什么企业喜欢用 Centos 而不是 Ubuntu
    Centos产品规范ubuntu简介ubuntu基于Debian:GNU/Linux是一种强调使用自由软件的发行版,支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为软件包管理器。Ubuntu:知名Linux发行版之一,由Canonical有限公司赞助,基于Debian,使用自己的软件包......
  • Java17新特性及代码示例:还在使用Java8? 这5个Java17新功能,你会喜欢的
    SpringBoot3.0最低支持JDK17,各开源软件正在全面拥抱JDK17.有升级计划的调查受访者中,37%的人计划在未来六个月内升级到2021年9月份发布的LTS版本JDK17。另有25%的人计划在未来6到12个月内升级到JDK17。这5个你喜欢的JDK17新功能,会让你升级JDK17吗?1.record类(记录类)传统的......
  • 这两种白噪音你喜欢哪一种?
    1.小湖流水 2.午后雨声 ......
  • 个人交易者不太喜欢,Forexclub认为机构最喜欢的一个交易策略
    最近Forexclub发现了一个机构一直在使用的交易策略,但是推荐给身边的朋友,发现赚钱慢都不太喜欢,但是Forexclub想说的是这个交易策略稳定啊!以下就是Forexclub发现的利润最稳定的策略。在API和EIA数据发布时,石油报价往往会剧烈波动。Forexclub根据策略,在消息发布之前设置两个挂单,一个......
  • 老外最喜欢用的15款社交软件,不回邮件就去这里找他!
    外贸人不仅要懂得跟外国客户谈生意……私底下的问候、关心、聊天也必不可少。其实很多老外都不喜欢来回发邮件,他们大多数时间都是泡在社交软件上。如果能掌握外国客户常用的几款社交软件,并了解对方的喜好和生活习惯,就可以有更多的谈资和切入点引起对方的注意哦!下面贸小七就来介绍几......