Maison >développement back-end >C++ >Comment puis-je supprimer les valeurs nulles lors de l'utilisation du sérialiseur XML .NET ?
Sérialisation XML .NET : gestion des valeurs nulles
Le sérialiseur XML .NET standard inclut des valeurs nulles par défaut. Pour les exclure, utilisez le modèle ShouldSerialize
. Ce modèle vous permet de définir si une propriété doit être sérialisée.
Pour chaque propriété nécessitant la suppression des valeurs nulles, créez une méthode nommée ShouldSerialize{PropertyName}
. Par exemple, une propriété entière nullable MyNullableInt
aurait besoin de cette méthode :
<code class="language-csharp">public bool ShouldSerializeMyNullableInt() { return MyNullableInt.HasValue; }</code>
Cette méthode renvoie true
si MyNullableInt
a une valeur, déclenchant la sérialisation. Sinon, il renvoie false
, empêchant la sérialisation de la valeur nulle.
Voici un exemple de classe démontrant cela :
<code class="language-csharp">public class Person { public string Name { get; set; } public int? Age { get; set; } public bool ShouldSerializeAge() { return Age.HasValue; } }</code>
Sérialiser une instance :
<code class="language-csharp">Person person = new Person { Name = "Chris" }; XmlSerializer xs = new XmlSerializer(typeof(Person)); StringWriter sw = new StringWriter(); xs.Serialize(sw, person);</code>
Le XML résultant omet l'élément Age
en raison de sa valeur nulle :
<code class="language-xml"><person xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><name>Chris</name></person></code>
L'utilisation de méthodes ShouldSerialize
personnalisées fournit un contrôle granulaire sur la sérialisation, permettant l'omission sélective des valeurs nulles pour une sortie XML plus concise et efficace.
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!