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);