使用 ServiceStack 时,EventMessage.Body 不会反序列化回原始对象。相反 EventMessage.Body 是一个 JSON 字符串。
重现:
- 打开 EventStore 项目并导航到 EventStore.Example 项目
- 将 EventStore.Serialization.Json 引用替换为对 EventStore.Serialization.ServiceStack 的项目引用
- 关闭 EventStore.Example 项目上的程序集签名
- 将 MainProgram.WireupEventStore 更改为 .UsingServiceStackJsonSerialization()
- 在 MainProgram.Main() 的末尾附近添加以下代码:
-
var stream = store.OpenStream(StreamId, 0, int.MaxValue);
var myFirstEvent = (SomeDomainEvent) (stream.CommittedEvents.First().Body);
Console.Out.WriteLine("MyFirstEvent.Value=" + myFirstEvent.Value);