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); }
private static void ReadAndAssertProperty(JsonReader reader, string propertyName) { EntityKeyMemberConverter.ReadAndAssert(reader); if (reader.TokenType != JsonToken.PropertyName || !string.Equals(reader.Value.ToString(), propertyName, StringComparison.OrdinalIgnoreCase)) { throw new JsonSerializationException("Expected JSON property '{0}'.".FormatWith(CultureInfo.InvariantCulture, propertyName)); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { string str; Type type; string fullName; EntityKeyMemberConverter.EnsureReflectionObject(value.GetType()); DefaultContractResolver contractResolver = serializer.ContractResolver as DefaultContractResolver; string str1 = (string)EntityKeyMemberConverter._reflectionObject.GetValue(value, "Key"); object obj = EntityKeyMemberConverter._reflectionObject.GetValue(value, "Value"); if (obj != null) { type = obj.GetType(); } else { type = null; } Type type1 = type; writer.WriteStartObject(); writer.WritePropertyName((contractResolver != null ? contractResolver.GetResolvedPropertyName("Key") : "Key")); writer.WriteValue(str1); writer.WritePropertyName((contractResolver != null ? contractResolver.GetResolvedPropertyName("Type") : "Type")); JsonWriter jsonWriter = writer; if (type1 != null) { fullName = type1.FullName; } else { fullName = null; } jsonWriter.WriteValue(fullName); writer.WritePropertyName((contractResolver != null ? contractResolver.GetResolvedPropertyName("Value") : "Value")); if (type1 == null) { writer.WriteNull(); } else if (!JsonSerializerInternalWriter.TryConvertToString(obj, type1, out str)) { writer.WriteValue(obj); } else { writer.WriteValue(str); } writer.WriteEndObject(); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { EntityKeyMemberConverter.EnsureReflectionObject(objectType); object creator = EntityKeyMemberConverter._reflectionObject.Creator(new object[0]); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Key"); reader.ReadAndAssert(); EntityKeyMemberConverter._reflectionObject.SetValue(creator, "Key", reader.Value.ToString()); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Type"); reader.ReadAndAssert(); Type type = Type.GetType(reader.Value.ToString()); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Value"); reader.ReadAndAssert(); EntityKeyMemberConverter._reflectionObject.SetValue(creator, "Value", serializer.Deserialize(reader, type)); reader.ReadAndAssert(); return(creator); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { IEntityKeyMember entityKeyMember = DynamicWrapper.CreateWrapper <IEntityKeyMember>(Activator.CreateInstance(objectType)); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Key"); EntityKeyMemberConverter.ReadAndAssert(reader); entityKeyMember.Key = reader.Value.ToString(); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Type"); EntityKeyMemberConverter.ReadAndAssert(reader); string typeName = reader.Value.ToString(); Type type = Type.GetType(typeName); EntityKeyMemberConverter.ReadAndAssertProperty(reader, "Value"); EntityKeyMemberConverter.ReadAndAssert(reader); entityKeyMember.Value = serializer.Deserialize(reader, type); EntityKeyMemberConverter.ReadAndAssert(reader); return(DynamicWrapper.GetUnderlyingObject(entityKeyMember)); }
// Token: 0x060014A5 RID: 5285 RVA: 0x0006DB84 File Offset: 0x0006BD84 public override void WriteJson(JsonWriter writer, [Nullable(2)] object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } EntityKeyMemberConverter.EnsureReflectionObject(value.GetType()); DefaultContractResolver defaultContractResolver = serializer.ContractResolver as DefaultContractResolver; string value2 = (string)EntityKeyMemberConverter._reflectionObject.GetValue(value, "Key"); object value3 = EntityKeyMemberConverter._reflectionObject.GetValue(value, "Value"); Type type = (value3 != null) ? value3.GetType() : null; writer.WriteStartObject(); writer.WritePropertyName((defaultContractResolver != null) ? defaultContractResolver.GetResolvedPropertyName("Key") : "Key"); writer.WriteValue(value2); writer.WritePropertyName((defaultContractResolver != null) ? defaultContractResolver.GetResolvedPropertyName("Type") : "Type"); writer.WriteValue((type != null) ? type.FullName : null); writer.WritePropertyName((defaultContractResolver != null) ? defaultContractResolver.GetResolvedPropertyName("Value") : "Value"); if (type != null) { string value4; if (JsonSerializerInternalWriter.TryConvertToString(value3, type, out value4)) { writer.WriteValue(value4); } else { writer.WriteValue(value3); } } else { writer.WriteNull(); } writer.WriteEndObject(); }