/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="JsonReader"/> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns>The object value.</returns> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { EnsureReflectionObject(objectType); MiscellaneousUtils.Assert(_reflectionObject != null); object entityKeyMember = _reflectionObject.Creator(); ReadAndAssertProperty(reader, KeyPropertyName); reader.ReadAndAssert(); _reflectionObject.SetValue(entityKeyMember, KeyPropertyName, reader.Value?.ToString()); ReadAndAssertProperty(reader, TypePropertyName); reader.ReadAndAssert(); string type = reader.Value?.ToString(); Type t = Type.GetType(type); ReadAndAssertProperty(reader, ValuePropertyName); reader.ReadAndAssert(); _reflectionObject.SetValue(entityKeyMember, ValuePropertyName, serializer.Deserialize(reader, t)); reader.ReadAndAssert(); return(entityKeyMember); }
public override object ReadJson(JsonReader reader, Type objectType, [Nullable(2)] object existingValue, JsonSerializer serializer) { EntityKeyMemberConverter.EnsureReflectionObject(objectType); object obj = EntityKeyMemberConverter._reflectionObject.Creator(new object[0]); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Key"); reader.ReadAndAssert(); ReflectionObject reflectionObject = EntityKeyMemberConverter._reflectionObject; object target = obj; string member = "Key"; object value = reader.Value; reflectionObject.SetValue(target, member, (value != null) ? value.ToString() : null); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Type"); reader.ReadAndAssert(); object value2 = reader.Value; Type type = Type.GetType((value2 != null) ? value2.ToString() : null); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Value"); reader.ReadAndAssert(); EntityKeyMemberConverter._reflectionObject.SetValue(obj, "Value", serializer.Deserialize(reader, type)); reader.ReadAndAssert(); return(obj); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { EnsureReflectionObject(objectType); object target = _reflectionObject.Creator(new object[0]); ReadAndAssertProperty(reader, "Key"); reader.ReadAndAssert(); _reflectionObject.SetValue(target, "Key", reader.Value.ToString()); ReadAndAssertProperty(reader, "Type"); reader.ReadAndAssert(); Type type = Type.GetType(reader.Value.ToString()); ReadAndAssertProperty(reader, "Value"); reader.ReadAndAssert(); _reflectionObject.SetValue(target, "Value", serializer.Deserialize(reader, type)); reader.ReadAndAssert(); return(target); }
/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="JsonReader"/> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns>The object value.</returns> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { EnsureReflectionObject(objectType); var entityKeyMember = _reflectionObject.Creator(); ReadAndAssertProperty(reader, KeyPropertyName); ReadAndAssert(reader); _reflectionObject.SetValue(entityKeyMember, KeyPropertyName, reader.Value.ToString()); ReadAndAssertProperty(reader, TypePropertyName); ReadAndAssert(reader); var type = reader.Value.ToString(); var t = Type.GetType(type); ReadAndAssertProperty(reader, ValuePropertyName); ReadAndAssert(reader); _reflectionObject.SetValue(entityKeyMember, ValuePropertyName, serializer.Deserialize(reader, t)); ReadAndAssert(reader); return(entityKeyMember); }