Недавно я обновил решение до версии .NET Core 3, и у меня есть класс, который требует, чтобы переменные класса были полями.Это проблема, поскольку новый System.Text.Json.JsonSerializer
не поддерживает сериализацию и десериализацию полей, а обрабатывает только свойства.
Есть ли способ убедиться, что два финальных класса в приведенном ниже примере имеют одинаковые точные значения?
using System.Text.Json;
public class Car
{
public int Year { get; set; } // does serialize correctly
public string Model; // doesn't serialize correctly
}
static void Problem() {
Car car = new Car()
{
Model = "Fit",
Year = 2008,
};
string json = JsonSerializer.Serialize(car); // {"Year":2008}
Car carDeserialized = JsonSerializer.Deserialize<Car>(json);
Console.WriteLine(carDeserialized.Model); // null!
}