Я использую NEventStore в приложении, использующем CQRS/Event-Sourcing. Мой WireUp выглядит следующим образом:
return NEventStore.Wireup.Init()
.LogToOutputWindow()
.UsingInMemoryPersistence()
.UsingSqlPersistence("TestConnection")
.WithDialect(new MsSqlDialect())
.EnlistInAmbientTransaction()
.InitializeStorageEngine()
.UsingJsonSerialization()
.Build();
Сериализация событий, содержащих встроенные простые типы данных, такие как string и int, работает нормально. Однако, когда я пытаюсь сериализовать событие, использующее структуру, которую я определил, десериализованное значение равно null.
Мне, вероятно, придется пометить участников моего мероприятия с помощью атрибутов. Но какую схему использует NEventStore? C# имеет довольно много параметров (атрибуты из DataContract Serializer, атрибуты из XmlSerializer,...).
Мне также интересно, какие ограничения существуют на сериализацию. Требуется ли для NEventStore общедоступный пустой конструктор? Публичные сеттеры? Или я могу использовать поля только для чтения (мое предпочтение).
Мне не удалось выяснить, какой сериализатор Json использует NEventStore. Кажется, это не тот пакет NetwonSoft, так как для него есть отдельный пакет nuget.