最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET?6新特性試用之System.Text.Json功能改進(jìn)

 更新時(shí)間:2022年03月15日 10:54:04   作者:My?IO  
這篇文章主要介紹了.NET?6新特性試用之System.Text.Json功能改進(jìn),

前言:

??System.Text.Json??作為.NET默認(rèn)的JSON序列化和反序列化類庫(kù),讓我們看看,在.NET 6中有哪些功能上的改進(jìn)?

Demo

?1.屬性排序?

在屬性上聲明??JsonPropertyOrderAttribute??來控制屬性序列化的順序,而以前,順序是由反射順序決定的,是不確定的。

示例代碼如下:

public class User
{
? ? public int Age { get; set; }

? ? [JsonPropertyOrder(1)]
? ? public string Name { get; set; }
?
? ? [JsonPropertyOrder(-1)]
? ? public int Id { get; set; }
}

排序值較小的數(shù)字首先被序列化;沒有聲明屬性的默認(rèn)排序值為0:

{
? "Id": 1,
? "Age": 20,
? "Name": "My IO"
}

?2.序列化通知?

??System.Text.Json??新增了4個(gè)接口:

  • IJsonOnDeserialized
  • IJsonOnDeserializing
  • IJsonOnSerialized
  • IJsonOnSerializing

從名字上也可以看出它們的作用,即在序列化/反序列化前后被調(diào)用。

示例代碼如下:

public class User : ?IJsonOnSerialized, IJsonOnDeserialized
{
? ? public void OnDeserialized() => this.Validate(); // 反序列化后調(diào)用
? ? public void OnSerializing() => this.Validate(); // 序列化前調(diào)用

? ? private void Validate()
? ? {
? ? ? ? if (this.Age <= 0)
? ? ? ? ? ? throw new ArgumentException();
? ? }
}

結(jié)論:

  • ?“屬性排序”功能有點(diǎn)雞肋,目前還沒碰到過需要指定排序的應(yīng)用場(chǎng)景。?
  • ?“序列化通知”功能對(duì)于設(shè)置默認(rèn)值和驗(yàn)證屬性值合法性非常有用。?

到此這篇關(guān)于.NET 6新特性試用之System.Text.Json功能改進(jìn)的文章就介紹到這了,更多相關(guān) System.Text.Json功能改進(jìn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

陆川县| 方正县| 海原县| 汝城县| 南丰县| 化州市| 丘北县| 昭通市| 罗江县| 江永县| 荣成市| 兴安县| 江口县| 鹤峰县| 平江县| 屏山县| 西华县| 呼和浩特市| 响水县| 宜兰县| 陵川县| 封开县| 龙泉市| 佛坪县| 高密市| 宝清县| 渭南市| 洮南市| 遵义市| 普兰店市| 永寿县| 鄂托克前旗| 灵武市| 贡觉县| 塔河县| 西盟| 永仁县| 三明市| 阳山县| 衢州市| 杂多县|