Используйте System.Text.Json для десериализации свойств с помощью частных установщиков

Есть ли способ использовать System.Text.Json.JsonSerializer.Deserialize с объектом, который содержит свойства частных установщиков, и заполнить эти свойства? (как Newtonsoft.Json)

2 ответа

Решение

В.NET Core 3.x это невозможно. В шкале времени.NET 5 добавлена ​​поддержка.

Согласно официальной документации (C# 9), у вас есть 2 варианта:

  1. Использовать init вместо setна собственности. Например public string Summary { get; init; }
  2. Добавлять JsonIncludeатрибут свойств с частными сеттерами. Например [JsonInclude] public string Summary { get; private set; }

В любом случае JsonSerializer.DeserializeAsync сделает это за вас.

Другие вопросы по тегам