Json.NET аварийно завершает работу при сериализации массива беззнаковых целых чисел (ulong)

Получение ошибки парсера при попытке сериализовать массив ulong, похоже, что библиотека Json.NET не проверяет, подписано ли целое число или нет; кто-нибудь знает обходной путь для этого? или любая другая библиотека .NET Json, которая может обрабатывать unsigned int?

* EDIT: код ниже; * Он сериализуется нормально, но при десериализации выдает ошибку; Похоже, он не учитывает unsigned int при просмотре трассировки стека;

NewTonsoft.Json.JsonReaderException : {"JSON integer 18446744073709551615 is too large or small for an Int64."}

Value was either too large or too small for an Int64.
   at System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
   at System.Convert.ToInt64(String value, IFormatProvider provider)
   at Newtonsoft.Json.JsonTextReader.ParseNumber() in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 1360
   class Program
        {
            static void Main(string[] args)
            {
                string output = JsonConvert.SerializeObject(new ulong[] {ulong.MinValue, 20, 21, 22, ulong.MaxValue});
                Console.WriteLine(output);

                ulong[] array = JsonConvert.DeserializeObject<ulong[]>(output);
                Console.WriteLine(array);

                Console.ReadLine();
            }
        }
5
задан svick 20 February 2012 в 08:31
поделиться