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 序列化的字符串表达。多适用于实例化对象后属性不再变更的场景。

posted @ 2022-12-13 11:25  TXRock  阅读(171)  评论(0编辑  收藏  举报