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);
}