Я использую Json.net для сериализации объектов в базе данных.
Я добавил новое свойство в класс (которого нет в json в базе данных), и я хочу, чтобы новое свойство имело значение по умолчанию, когда отсутствует в json.
Я попробовал атрибут DefaultValue, но он не работает. Я использую частные сеттеры и конструктор для десериализации json, поэтому установка значения свойства в конструкторе не будет работать, поскольку есть параметр со значением.
Ниже приведен пример:
class Cat
{
public Cat(string name, int age)
{
Name = name;
Age = age;
}
public string Name { get; private set; }
[DefaultValue(5)]
public int Age { get; private set; }
}
static void Main(string[] args)
{
string json = "{\"name\":\"mmmm\"}";
Cat cat = JsonConvert.DeserializeObject<Cat>(json);
Console.WriteLine("{0} {1}", cat.Name, cat.Age);
}
Я ожидаю, что возраст будет 5, но он равен нулю.
Любые предложения?