Я только что начал использовать Newtonsoft.Json(Json.net). В моем первом простом испытании я столкнулся с проблемой при десериализации общих списков. В моем примере кода ниже я сериализую объект, содержащий три типа простых целых списков (свойство, член var и массив).
Получившийся json выглядит отлично (списки преобразуются в json-массивы). Однако, когда я десериализую json обратно на новый объект того же типа, все элементы списка дублируются, ожидайте для массива. Я проиллюстрировал это, сериализуя его во второй раз.
От поиска, я прочитал, что может быть поле поддержки "private" для списков, которые также заполняет десериализатор.
Итак, мой вопрос: есть ли (желательно простой) способ избежать дублирования элементов в следующем случае?
Код
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace JsonSerializeExample
{
    public class Program
    {
        static void Main()
        {
            var data = new SomeData();
            var json = JsonConvert.SerializeObject(data);
            Console.WriteLine("First : {0}", json);
            var data2 = JsonConvert.DeserializeObject<SomeData>(json);
            var json2 = JsonConvert.SerializeObject(data2);
            Console.WriteLine("Second: {0}", json2);
        }
    }
    public class SomeData
    {
        public string SimpleField;
        public int[] IntArray;
        public IList<int> IntListProperty { get; set; }
        public IList<int> IntListMember;
        public SomeData()
        {
            SimpleField = "Some data";
            IntArray = new[] { 7, 8, 9 };
            IntListProperty = new List<int> { 1, 2, 3 };
            IntListMember = new List<int> { 4, 5, 6 };
        }
    }
}
Результирующий выход
First : {"SimpleField":"Some data","IntArray":[7,8,9],"IntListMember":[4,5,6],"IntListProperty":[1,2,3]}
Second: {"SimpleField":"Some data","IntArray":[7,8,9],"IntListMember":[4,5,6,4,5,6],"IntListProperty":[1,2,3,1,2,3]}
Здесь может быть несколько совпадений с Json.Net дублирует личный список элементов. Тем не менее, я думаю, что моя проблема еще проще, и я до сих пор не понял этого.