Как восстановить поведение десериализации int после обновления Json.NET?

у меня есть немного.NET код, который десериализуетJSON объекты, созданныеwebservice работает динамический язык. Поскольку источник является динамическим, он иногда сериализует целые значения в формате с плавающей запятой (например, 2 сериализуется в "2,0").

СJson.NET 4.0.4это сработало без проблем (кажется, что при десериализации было применено округление). С обновлением доJson.NET 4.5Впрочем, десериализация 2.0 теперь бросаетFormatException, Вот's код:

// works as expected in both versions
var s = "2";
Console.WriteLine(JsonConvert.DeserializeObject(s));

// throws FormatException in 4.5 only
var s = "2.0";
Console.WriteLine(JsonConvert.DeserializeObject(s));

// throws FormatException in 4.5, rounds to 3 in 4.0.4
var s = "2.6";
Console.WriteLine(JsonConvert.DeserializeObject(s));

Есть ли простой способ восстановить исходное поведение? Идеальным поведением будет десериализация только чисел с целыми значениями, но в любом формате (например, 2.0, 1e10, но не 2.5), но я 'Я согласен с поведением 4.0.4.

Ответы на вопрос(1)

Ваш ответ на вопрос