Start Debugging
2023-09-03 Atualizado 2023-11-05 dotnetdotnet-8 Edit on GitHub

.NET 8 desserializando em propriedades somente leitura

Aprenda a desserializar JSON em propriedades somente leitura, sem setter, no .NET 8 usando JsonObjectCreationHandling ou JsonSerializerOptions.

A partir do .NET 8 dá para desserializar em propriedades que não têm o acessador set. Você pode ativar esse comportamento com JsonSerializerOptions ou por tipo, com o atributo JsonObjectCreationHandling.

Usando o atributo JsonObjectCreationHandling

Você pode anotar o seu tipo com o atributo System.Text.Json.Serialization.JsonObjectCreationHandling, passando a opção como parâmetro.

[JsonObjectCreationHandling(JsonObjectCreationHandling.Populate)]
public class Foo
{
     public int Bar { get; }
}

Usando JsonSerializerOptions

Defina a propriedade JsonSerializerOptions.PreferredObjectCreationHandling como Populate e passe esse options para o método Deserialize.

new JsonSerializerOptions 
{ 
    PreferredObjectCreationHandling = JsonObjectCreationHandling.Populate
};

Comments

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

< Voltar