Suppression des valeurs nulles dans la sérialisation XML .NET
Le sérialiseur XML .NET par défaut inclut des valeurs nulles, souvent marquées par des attributs « nil ». Cela peut conduire à une sortie XML loin d’être idéale. Cet article présente des techniques permettant d'omettre proprement les valeurs nulles de votre XML sérialisé.
Nous pouvons exploiter l'attribut [XmlIgnore]
ou implémenter une logique de sérialisation personnalisée pour y parvenir.
Méthode 1 : Utilisation de l'attribut [XmlIgnore]
L'approche la plus simple consiste à utiliser l'attribut [XmlIgnore]
. Cet attribut demande au sérialiseur d'ignorer entièrement la propriété pendant la sérialisation.
<code class="language-csharp">public class MyClass { [XmlIgnore] public int? MyNullableInt { get; set; } public int MyOtherInt { get; set; } }</code>
Ici, MyNullableInt
sera exclu du XML quelle que soit sa valeur.
Méthode 2 : Sérialisation personnalisée avec ShouldSerialize
Pour plus de contrôle, créez une méthode ShouldSerialize
personnalisée. Cette méthode détermine si une propriété doit être sérialisée en fonction de sa valeur.
<code class="language-csharp">public class MyClass { private int? _myNullableInt; [XmlIgnore] public int? MyNullableInt { get => _myNullableInt; set => _myNullableInt = value; } public int MyOtherInt { get; set; } public bool ShouldSerializeMyNullableInt() { return _myNullableInt.HasValue; } }</code>
La méthode ShouldSerializeMyNullableInt
renvoie true
uniquement lorsque MyNullableInt
contient une valeur ; sinon, il est omis du XML. Cela fournit un contrôle granulaire sur les valeurs nulles qui sont incluses.
En utilisant l'une ou l'autre de ces méthodes, vous pouvez gérer efficacement les valeurs nulles lors de la sérialisation XML .NET, ce qui entraîne une sortie XML plus propre et plus personnalisée.
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!