public void DeserialiseEventKnownFSharpTypeIsKnowInvered() { var evt = new LeaveEntryCreated(Guid.NewGuid(), DateTime.Now, DateTime.UtcNow, "Foo"); var json = JsonConvert.SerializeObject(evt); var eventHeader = new Dictionary<string, string> { { "EventClrType", evt.GetType().AssemblyQualifiedName } }; var metaData = JsonConvert.SerializeObject(eventHeader); var eventName = JObject.Parse(metaData).Property("EventClrType").Value.ToString(); var eventType = Type.GetType(eventName); var des = JsonConvert.DeserializeObject(json, eventType); Assert.AreEqual(evt, des); }