Como posso restaurar o comportamento de desserialização int depois de atualizar o Json.NET?

eu tenho alguns.NET código que desserializaJSON objetos criados por umwebservice executando uma linguagem dinâmica. Como a fonte é dinâmica, às vezes serializa os valores integrais no formato flutuante (por exemplo, 2 é serializado para "2.0").

ComJson.NET 4.0.4, isso funcionou perfeitamente (parece que o arredondamento foi aplicado ao desserializar). Com a atualização paraJson.NET 4.5, no entanto, desserializing 2.0 agora lança umFormatException. Aqui está o código:

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

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

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

Existe alguma maneira fácil de restaurar o comportamento original? O comportamento ideal seria desserializar somente números com valores integrais, mas em qualquer formato (por exemplo, 2.0, 1e10, mas não 2.5), mas eu me conformaria com o comportamento 4.0.4.

questionAnswers(1)

yourAnswerToTheQuestion