예제 #1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            ElementsWrapper <T> wrapper = new ElementsWrapper <T>();

            wrapper.elements = ((List <T>)value).ToArray();
            serializer.Serialize(writer, wrapper);
        }
예제 #2
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     if (reader.TokenType == JsonToken.StartObject)
     {
         ElementsWrapper <T> wrapper = (ElementsWrapper <T>)serializer.Deserialize(reader, typeof(ElementsWrapper <T>)); // If ElementsWrapper used a List<T>, it would recursively call here, so T[] resolves that recursive issue without creating a new deserializer
         return(new List <T>(wrapper.elements));
     }
     return(null);
 }