Магазин событий JOliver: невозможно прочитать события при использовании сериализатора ServiceStack - PullRequest
2 голосов
/ 13 августа 2011

EventMessage.Body не десериализован обратно в исходный объект при использовании ServiceStack. Вместо этого EventMessage.Body является строкой JSON.

Воспроизвести:

  1. Откройте проект EventStore и перейдите к проекту EventStore.Example
  2. Заменить ссылки EventStore.Serialization.Json ссылками проекта на EventStore.Serialization.ServiceStack
  3. Отключение подписи сборки в EventStore. Пример проекта
  4. Измените MainProgram.WireupEventStore на .UsingServiceStackJsonSerialization ()
  5. Добавьте следующий код в конец 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 Ответ

1 голос
/ 14 августа 2011

Если это строка и вы ожидаете SomeDomainEvent, вы можете использовать FromJson метод расширения ServiceStack, то есть:

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