.NET 8 десериализация в свойства только для чтения
Узнайте, как в .NET 8 десериализовать JSON в свойства только для чтения без сеттера с помощью JsonObjectCreationHandling или JsonSerializerOptions.
Начиная с .NET 8 можно десериализовать в свойства, у которых нет аксессора set. Это поведение можно включить через JsonSerializerOptions или для конкретного типа с помощью атрибута JsonObjectCreationHandling.
Через атрибут JsonObjectCreationHandling
Пометьте свой тип атрибутом System.Text.Json.Serialization.JsonObjectCreationHandling, передав нужную опцию параметром.
[JsonObjectCreationHandling(JsonObjectCreationHandling.Populate)]
public class Foo
{
public int Bar { get; }
}
Через JsonSerializerOptions
Установите свойство JsonSerializerOptions.PreferredObjectCreationHandling в Populate и передайте options в метод Deserialize.
new JsonSerializerOptions
{
PreferredObjectCreationHandling = JsonObjectCreationHandling.Populate
};
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.