首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NEventStore内置的JSON序列化程序序列化复杂类型

使用NEventStore内置的JSON序列化程序序列化复杂类型
EN

Stack Overflow用户
提问于 2015-07-21 02:01:33
回答 1查看 388关注 0票数 3

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

代码语言:javascript
复制
 return NEventStore.Wireup.Init()
               .LogToOutputWindow()
               .UsingInMemoryPersistence()      
               .UsingSqlPersistence("TestConnection") 
               .WithDialect(new MsSqlDialect())
               .EnlistInAmbientTransaction()        
               .InitializeStorageEngine()               
               .UsingJsonSerialization()                             
               .Build();

序列化包含内置简单数据类型(如string和int )的事件可以很好地工作。但是,当我试图序列化一个使用我定义的结构的事件时,反序列化的值是null。

我可能需要使用属性来标记事件的成员。但是NEventStore使用的是什么方案呢?C#有相当多的选项(来自DataContract序列化程序的属性,来自XmlSerializer的属性,等等)。

我也想知道序列化有什么限制。NEventStore需要公共的空构造函数吗?Public setter?或者我可以使用只读字段(我的偏好)。

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

EN

回答 1

Stack Overflow用户

发布于 2015-10-10 10:50:57

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31523290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档