public EventSerializerTests() { versionedTypeRegistry = Substitute.For <IVersionedTypeRegistry>(); versionedTypeRegistry.GetTypeInfo <IEvent>(typeof(Event1)) .Returns(new VersionedType(new VersionedTypeId("Event1", 1), typeof(Event1))); versionedTypeRegistry.GetTypeInfo <IEvent>(new VersionedTypeId("Event1", 1)) .Returns(new VersionedType(new VersionedTypeId("Event1", 1), typeof(Event1))); versionedTypeRegistry.GetTypeInfo <IEvent>(typeof(Event2)) .Returns(new VersionedType(new VersionedTypeId("Event2", 1), typeof(Event2))); versionedTypeRegistry.GetTypeInfo <IEvent>(new VersionedTypeId("Event2", 1)) .Returns(new VersionedType(new VersionedTypeId("Event2", 1), typeof(Event2))); sut = new EventSerializer(versionedTypeRegistry); }
public IEvent DeserializeEvent(string eventJson, VersionedTypeId typeId) { try { Type clrType = versionedTypeRegistry.GetTypeInfo <IEvent>(typeId).ClrType; return((IEvent)JsonConvert.DeserializeObject(eventJson, clrType)); } catch (JsonException e) { throw new IOException($"Invalid event read from EF6 event store, error deserializing event JSON: {e.ToString()}", e); } }