Utilisez System.Text.Json pour sérialiser et désérialiser les champs de classe
La version .NET Core 3.x de System.Text.Json ne prend pas en charge nativement la sérialisation et la désérialisation des champs de classe. Cela peut poser un problème pour les classes qui dépendent fortement des champs pour le stockage des données.
Pour résoudre ce problème, System.Text.Json propose deux méthodes différentes selon la version de .NET :
.NET Core 3.x
Malheureusement, dans .NET Core 3.x, System.Text.Json ne prend pas en charge les champs. Pour surmonter cette limitation, vous devez créer un convertisseur personnalisé pour gérer la sérialisation et la désérialisation des champs.
.NET 5 et supérieur
À partir de .NET 5, les champs publics peuvent être sérialisés en définissant la propriété JsonSerializerOptions.IncludeFields sur true. Vous pouvez également marquer explicitement les champs pour la sérialisation à l'aide de l'attribut [JsonInclude]. Un exemple est le suivant :
<code class="language-csharp">using System.Text.Json; public class Car { public int Year { get; set; } [JsonInclude] public string Model; } static void SerializeWithFields() { var car = new Car { Model = "Fit", Year = 2008 }; var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); Console.WriteLine(json); // {"Model": "Fit", "Year": 2008} }</code>
En tirant parti de ces techniques, vous pouvez vous assurer que vos classes peuvent être sérialisées et désérialisées efficacement à l'aide de System.Text.Json, même lorsqu'il s'agit de champs de classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!