使用ServiceStack时,EventMessage.Body不会反序列化回原始对象。相反,EventMessage.Body是一个JSON字符串。
重现:
-
var stream = store.OpenStream(StreamId, 0, int.MaxValue);
var myFirstEvent = (SomeDomainEvent) (stream.CommittedEvents.First().Body);
Console.Out.WriteLine("MyFirstEvent.Value=" + myFirstEvent.Value);
答案 0 :(得分:1)
如果它是一个字符串并且您期望SomeDomainEvent,您可以使用ServiceStack的 FromJson 扩展方法,即:
var myFirstEvent = stream.CommittedEvents.First().Body.FromJson<SomeDomainEvent>();
Console.Out.WriteLine("MyFirstEvent.Value=" + myFirstEvent.Value);