예제 #1
0
        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);
        }
예제 #2
0
 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);
     }
 }