2017-03-09 3 views
2

ich eine sehr einfache Deserialisierung von ulong so machte:Deserialisierung von ulong andernfalls für .NET-Core

static void Main(string[] args) 
    { 
     try 
     { 
      var data = ulong.MaxValue; 
      var serialized = JsonConvert.SerializeObject(data); 
      var res = JsonConvert.DeserializeObject<ulong>(serialized); 
      Console.WriteLine(res); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex); 
     } 
     Console.ReadKey(); 
    } 

In einer normalen Konsolenanwendung, das funktioniert gut. Aber wenn diese in einer .NET-Core Console Anwendung tut, schlägt es mit dem folgenden Fehler:

JSON integer 18446744073709551615 is too large or small for an Int64. Path '', line 1, position 20.

Es scheint mir, dass dies zu einem long zu konvertieren versucht, anstelle ein ulong. Was ist hier los? Ist das ein Fehler in JSON .NET oder .NET Core?

Antwort

3

Es war ein Fehler in Newtonsoft.Json, der von 9.0.2 behoben wird (bezogen issue).

Ich habe Ihren Code in meinem Projekt überprüft und nach dem Hinzufügen direkt bezogen auf "Newtonsoft.Json": "9.0.2-beta001" in project.json das Problem ist weg.