gpt4 book ai didi

cqrs - 使用 NEventStore 的内置 JSON Serializer 序列化复杂类型

转载 作者:行者123 更新时间:2023-12-01 06:49:56 25 4
gpt4 key购买 nike

我在使用 CQRS/Event-Sourcing 的应用程序中使用 NEventStore。我的 WireUp 如下所示:

 return NEventStore.Wireup.Init()
.LogToOutputWindow()
.UsingInMemoryPersistence()
.UsingSqlPersistence("TestConnection")
.WithDialect(new MsSqlDialect())
.EnlistInAmbientTransaction()
.InitializeStorageEngine()
.UsingJsonSerialization()
.Build();

序列化包含内置简单数据类型(例如字符串和整数)的事件效果很好。但是,当我尝试序列化使用我定义的结构的事件时,反序列化值为空。

我可能必须使用属性来标记我的事件的成员。但是NEventStore使用的是什么方案呢? C# 有很多选项(来自 DataContract Serializer 的属性,来自 XmlSerializer 的属性,...)。

我也想知道序列化有什么限制。 NEventStore 是否需要一个公共(public)的空构造函数?公共(public)二传手?或者我可以使用只读字段(我的偏好)。

我一直无法弄清楚 NEventStore 使用的是什么 Json 序列化程序。它似乎不是 NetwonSoft 的那个,因为它有一个单独的 nuget 包。

最佳答案

我遇到了同样的问题,所以这是我发现的。 NEventStore 在内部使用 Newtonsoft 的 Json.net。这是 Newtonsoft 关于序列化如何工作的页面的链接:http://www.newtonsoft.com/json/help/html/serializationguide.htm#ISerializable

您有多种选择来序列化类型。我选择实现 System.Runtime.Serialization.ISerializable 接口(interface),因为我不想从我的模型程序集中引用 json.net 依赖项。您的情况可能有所不同。

关于cqrs - 使用 NEventStore 的内置 JSON Serializer 序列化复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com