Ответ 1
В рамках ASP.NET Core 3.0 команда отошла от включения Json.NET по умолчанию. Вы можете прочитать больше об этом в общем в объявлении о критических изменениях в Microsoft.AspNetCore.App.
Вместо Json.NET ASP.NET Core 3.0 и .NET Core 3.0 включают другой API-интерфейс JSON, который немного больше ориентирован на производительность. Вы можете узнать об этом больше в объявлении о "будущем JSON в .NET Core 3.0".
Новые шаблоны для ASP.NET Core больше не будут поставляться в комплекте с Json.NET, но вы можете легко перенастроить проект, чтобы использовать его вместо новой библиотеки JSON. Это важно как для совместимости со старыми проектами, так и потому, что новая библиотека не должна быть полной заменой, поэтому вы не увидите там полный набор функций.
Чтобы перенастроить свой проект ASP.NET Core 3.0 с Json.NET, вам необходимо добавить ссылку NuGet на Microsoft.AspNetCore.Mvc.NewtonsoftJson
, который является пакетом, который включает в себя все необходимые биты. Затем в стартапах ConfigureServices
вам нужно будет настроить MVC следующим образом:
services.AddControllers()
.AddNewtonsoftJson();
Это устанавливает контроллеры MVC и настраивает его на использование Json.NET вместо этого нового API. Вместо контроллеров вы также можете использовать другую перегрузку MVC (например, для контроллеров с представлениями или страницами Razor). Этот метод AddNewtonsoftJson
имеет перегрузку, которая позволяет настраивать параметры Json.NET, как вы привыкли использовать с AddJsonOptions
в ASP.NET Core 2.x.
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});