首页 > 编程语言 >C# - DTO 的字符串表达

C# - DTO 的字符串表达

时间:2022-12-13 11:35:22浏览次数:37  
标签:DTO C# dotnet Json ToString 字符串 序列化 重写

第一阶段

重写 DTO 的 ToString() 方法。利用 Newtonsoft.Json 序列化 DTO 对象。

第二阶段

为 DTO 设置基类,重写基类的 ToString() 方法。利用 System.Text.Json 序列化 DTO 对象。

using System.Text.Json;

namespace Test.Dto;

/// <summary>
/// <para>.NET 7 新增了对多态 JSON 序列化的属性支持:</para>
/// https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-7-0
/// <para>当前版本 .NET 6 使用原方法:</para>
/// https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-6-0 
/// </summary>
public class DtoBase
{
    public override string ToString()
    {
        return JsonSerializer.Serialize(this, GetType());
    }
}

第三阶段

利用 record 关键字定义 DTO 类。其具备默认重写过的 ToString() 方法输出类似 JSON 序列化的字符串表达。多适用于实例化对象后属性不再变更的场景。

标签:DTO,C#,dotnet,Json,ToString,字符串,序列化,重写
From: https://www.cnblogs.com/txrock/p/16978098.html

相关文章

  • UnsupportedOperationException 的解决方案
    背景公司团队鉴于规范,在hashSet().size()==0的情况下,规定使用Collections.emptySet()代替newHashSet()进行参数传递,从而引发了java.lang.UnsupportedOperationExceptio......
  • Window版本pytorch入门深度学习环境安装与配置
    取材于​​b站视频​​一些常用的Conda命令首先你的电脑上应该有anaconda,打开anaconda终端anaconda的好处就是能够配置多个虚拟环境,方便管理与使用环境与包​​condaenv......
  • containerd网络问题
    记一次K8S安装后的网络问题环境信息ClientVersion:version.Info{Major:"1",Minor:"25",GitVersion:"v1.25.2",GitCommit:"5835544ca568b757a8ecae5c153f317e5736700......
  • P2744 「USACO5.3」量取牛奶 Milk Measuring
    将桶按容积大小从小到大排序,令\(f_{i,j}\)表示前\(i\)个桶能否量出\(j\)夸脱,如果可以就用vector存储最优方案。先枚举桶的种类再枚举夸脱数,转移看似只有两种:之前......
  • 如何将dxf或dwg等CAD文件与卫星影像地图叠加进行绘图设计?
    引言:在测绘、电力、水利、规划或道路设计等GIS相关行业中,通常会用AutoCAD进行矢量地图数据的绘制,而这些地图数据通常又是建立在投影平面坐标的基础上进行绘制的。为了确......
  • 19.13备库duplicate恢复新主库(二)
    问题描述:主备两个库不在同一个机房,此时想从这一套库中在复制一套可读可写的新库出来。网络带宽要求比较高,需要从备库中使用备份在起一个新库,也要测试下使用duplicate从备库......
  • Cocos Creator 错误:BodyAnim无法挂载
    BodyAnim无法挂载@property({type:Animation})publicBodyAnim:Animation|null=null;换成:@property({type:AnimationComponent})publicBodyAnim:Animatio......
  • 【java-01】springboot利用sharding jdbc实现读写分离
    写在开头打算把自己的java后端学习过程分享给大家,也方便之后自己回顾。从这里开始~目前在学习黑马的瑞吉外卖新手入门项目,这篇随笔记录的是项目优化之一读写分离先列出......
  • CSP2022 解题报告
    JT1乘方\(a=1\),答案为\(1\)。\(a>1\),答案很容易就超过\(10^9\),直接暴力计算即可。如果在做乘法时进行判断,则可以不开longlong。JT2解密\[p+q=n-e\timesd+2......
  • 迅为3A5000_7A2000开发板龙芯LoongArch架构核心主板
     主要参数    处理器:龙芯3A5000主频:2.3GHz-2.5GHz桥片:7A2000内存:8GB、16GBDDR4带ECC纠错(配置可选)系统:Loongnix典型功耗:35W核心板:16层底板:4层......