C# 如何为值对象序列化创建通用JsonConverter?
我将域对象作为JSON存储在数据库中。要存储DDD值对象,我需要创建一个C# 如何为值对象序列化创建通用JsonConverter?,c#,.net,domain-driven-design,system.text.json,value-objects,C#,.net,Domain Driven Design,System.text.json,Value Objects,我将域对象作为JSON存储在数据库中。要存储DDD值对象,我需要创建一个JsonConverter。我试图在System.Text.Json中创建一个通用值对象转换器 我在SO和EventFlow实现中看到了以下相关问题: -这看起来不错,但仅适用于SingleValueObject 因此,如何在System.Text.Json中创建一个通用值对象JsonConverter,而不会造成性能损失 编辑: 要添加一些上下文,这是实体: public class Meeting : Entit
JsonConverter
。我试图在System.Text.Json
中创建一个通用值对象转换器
我在SO和EventFlow
实现中看到了以下相关问题:
- -这看起来不错,但仅适用于
SingleValueObject
System.Text.Json
中创建一个通用值对象JsonConverter
,而不会造成性能损失
编辑:
要添加一些上下文,这是实体:
public class Meeting : Entity
{
public MeetingId Id { get; private set; }
public string Title { get; private set;}
private MeetingTerm Term { get; private set;}
... // other properties
}
public class MeetingTerm : ValueObject
{
public DateTime StartDate { get; }
public DateTime EndDate { get; }
... // other properties
}
public class MeetingId : ValueObject
{
public Guid Id { get; }
... // other properties
}
我想将其序列化为:
{
"id": "unique-guid",
"title": "foo",
"startDate": "foo",
"endDate": "bar"
... // other properties
}
“要存储DDD值对象,我需要创建一个JsonConverter”为什么?System.Text.Json API不是已经通用了吗?为什么您需要一些
JsonConverter
?为什么你有与Json.NET相关的链接?@GuruStron我用一个例子更新了这个问题,希望这有助于回答你的问题。因此,你不妨构建一个新模型,以一个会议
实例作为输入,并提取其对象的一些属性值。或者您是否希望构建一个方法/转换器,该方法/转换器从会议
获取所有属性值和对象,并将所有属性值(丢弃对象)作为新的单个,对象?您能否确认,对于从ValueObject
派生的类,您要做的是将其所有可序列化属性冒泡到容器对象?如果是这样的话,那么使用System.Text.Json
并没有简单的方法可以做到这一点……因此您基本上必须编写自己的序列化程序。如果你不想受到性能的影响,那就意味着你需要做一些事情,比如编译你自己的表达式。我并不真的推荐它,因为它需要大量的工作,但要开始,你可以看看。