C# - DTO 的字符串表达
第一阶段
重写 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 序列化的字符串表达。多适用于实例化对象后属性不再变更的场景。