Сериализация свойств IList с помощью .net core3 и нового JSON API - PullRequest
0 голосов
/ 30 сентября 2019

.netcore 3.0 внедрил новый и быстрый json api. У меня есть объекты для сериализации со свойствами списка:

public class X {
   ...
   IList<Y> SomeListProperty = new List<Y>();
}

Это, кажется, не работает, свойства списка просто игнорируются. Я попытался настроить его с помощью свойства MaxDepth , но оно не работает. https://docs.microsoft.com/en-us/dotnet/api/system.text.json.jsonserializeroptions?view=netcore-3.0

services.AddJsonOptions(options => options.JsonSerializerOptions.MaxDepth= 4);

Работает с newtonsoft. Эта функция еще не поддерживается?

1 Ответ

0 голосов
/ 21 октября 2019

Я нашел проблему. Новый сериализатор из namesapce System.Text.Json.Serialization не будет сериализовать поля, являющиеся списками. Сериализатор Newtonsoft делает. Я забыл сеттер и геттер. Неправильно:

public class X {
   ...
   IList<Y> SomeListProperty = new List<Y>();
}

Справа:

 public class X {
       ...
       IList<Y> SomeListProperty {get;set;} = new List<Y>();
    }
...