3using Newtonsoft.Json.Serialization;
4using Newtonsoft.Json.Linq;
5using System.Reflection;
22 public sealed
override void WriteJson(JsonWriter writer,
object value, JsonSerializer serializer)
24 writer.WriteStartObject();
25 writer.WritePropertyName(
"$type");
27 writer.WritePropertyName(
"value");
31 writer.WriteEndObject();
37 public abstract void WriteObjectJson(JsonWriter writer,
object value, JsonSerializer serializer);
39 public sealed
override object ReadJson(JsonReader reader, Type objectType,
object existingValue, JsonSerializer serializer)
41 JObject o = JObject.Load(reader);
43 JProperty type = o.Property(
"$type");
47 System.Type t = Type.GetType(type.Value.ToString());
59 public abstract object ReadJsonObject(JObject obj, Type objectType,
object existingValue, JsonSerializer serializer);
66 return typeof(T).IsAssignableFrom(objectType) || typeof(
pb_ObjectContainer<T>).IsAssignableFrom(objectType);
sealed override bool CanConvert(Type objectType)
sealed override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
abstract void WriteObjectJson(JsonWriter writer, object value, JsonSerializer serializer)
abstract object ReadJsonObject(JObject obj, Type objectType, object existingValue, JsonSerializer serializer)
sealed override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)