首页 > 解决方案 > 提供 ToString() 的序列化类

问题描述

假设我有一些定义ToString()

class Person {
  public override string ToString() { /* ... */ }
}

并假设某个模型中包含一个实例:

public Person Person { get; }

然后它是这样序列化的:

"person": {
  "value": "Foo Bar"
}

但我所期望的是:

"person": "Foo Bar"

我可以以某种方式做到这一点,还是必须使用自定义转换器?


更新

不,这不是那个相关问题的欺骗。这显示了如何对类型进行双向转换。我想做单向转换,因为我的类型已经有一个ToString方法——即仅序列化,而不是反序列化。

问题不在于如何编写类型转换器——而是在没有类型转换器的情况下,这种单向序列化是否可行。

标签: c#asp.net-corejson.netasp.net-core-2.2

解决方案


我最近在一个项目中遇到了这个问题,我的团队唯一想到的就是必须编写一个类型转换器。


推荐阅读