Start Debugging
2023-10-21 Обновлено 2023-11-05 dotnetdotnet-8 Edit on GitHub

System.Text.Json отключаем сериализацию на основе рефлексии

Узнайте, как, начиная с .NET 8, отключить сериализацию на основе рефлексии в System.Text.Json для trimmed- и native AOT-приложений с помощью свойства JsonSerializerIsReflectionEnabledByDefault.

Начиная с .NET 8 вы можете отключить дефолтный сериализатор System.Text.Json на основе рефлексии. Это бывает полезно в trimmed- и native AOT-приложениях, в сборку которых вы не хотите тянуть компоненты рефлексии.

Включить эту функциональность можно, выставив свойство JsonSerializerIsReflectionEnabledByDefault в false в своём .csproj-файле.

<JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault>

Побочный эффект: при сериализации и десериализации вам придётся передавать JsonSerializerOptions. В противном случае во время выполнения возникнет NotSupportedException.

Помимо этой опции, у JsonSerializer появилось новое свойство IsReflectionEnabledByDefault, которое позволяет разработчикам во время выполнения проверить, включена ли эта возможность.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад