2011-08-12 6 views
2

ServiceStackの使用時に、EventMessage.Bodyが元のオブジェクトに逆シリアル化されません。代わりに、EventMessage.BodyはJSON文字列です。オフEventStore.Serialization.ServiceStack JOliverのEventStore:ServiceStackシリアライザを使用しているときにイベントを読み取ることができません。

  • オンにするプロジェクト参照とEventStore.Serialization.Jsonの参照を置き換え

    1. オープンEventStoreのプロジェクトをEventStore.Exampleプロジェクト
    2. に移動します。

      を再現するために、イベントストアでのアセンブリ署名。

    3. MainProgram.WireupEventStoreを.UsingServiceStackJsonSerialization()に変更します。
    4. 以下を追加しますMainProgram.Mainの終わり()付近コード:

    -

    var stream = store.OpenStream(StreamId, 0, int.MaxValue); 
    var myFirstEvent = (SomeDomainEvent) (stream.CommittedEvents.First().Body); 
    Console.Out.WriteLine("MyFirstEvent.Value=" + myFirstEvent.Value); 
    
  • 答えて

    1

    それは文字列だと、あなたはServiceStackのFromJson拡張メソッド、つまり使用することができますSomeDomainEvent期待している場合:

    var myFirstEvent = stream.CommittedEvents.First().Body.FromJson<SomeDomainEvent>(); 
    Console.Out.WriteLine("MyFirstEvent.Value=" + myFirstEvent.Value); 
    
    +0

    このソリューションでは、イベントをデシリアライズして、ニュートンからServiceStackに切り替えることによるパフォーマンス上のメリットをほとんど無効にします。これはEventStore/ServiceStackプラグインのバグだと思っていますが、間違って使用しています。私はあなたの答えをアップアップしましたが、質問は答えられないままにしました。 –

    関連する問題