Heim >Backend-Entwicklung >C++ >Wie kann ich Nullwerte unterdrücken, wenn ich den .NET XML-Serializer verwende?
.NET XML-Serialisierung: Umgang mit Nullwerten
Der standardmäßige .NET XML Serializer enthält standardmäßig Nullwerte. Um diese auszuschließen, verwenden Sie das Muster ShouldSerialize
. Mit diesem Muster können Sie definieren, ob eine Eigenschaft serialisiert werden soll.
Erstellen Sie für jede Eigenschaft, die eine Nullwertunterdrückung erfordert, eine Methode mit dem Namen ShouldSerialize{PropertyName}
. Beispielsweise würde eine nullfähige Ganzzahleigenschaft MyNullableInt
diese Methode benötigen:
<code class="language-csharp">public bool ShouldSerializeMyNullableInt() { return MyNullableInt.HasValue; }</code>
Diese Methode gibt true
zurück, wenn MyNullableInt
einen Wert hat, wodurch die Serialisierung ausgelöst wird. Andernfalls wird false
zurückgegeben, wodurch die Serialisierung des Nullwerts verhindert wird.
Hier ist eine Beispielklasse, die dies demonstriert:
<code class="language-csharp">public class Person { public string Name { get; set; } public int? Age { get; set; } public bool ShouldSerializeAge() { return Age.HasValue; } }</code>
Eine Instanz serialisieren:
<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>
Im resultierenden XML wird das Element Age
aufgrund seines Nullwerts weggelassen:
<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>
Die Verwendung benutzerdefinierter ShouldSerialize
-Methoden bietet eine detaillierte Kontrolle über die Serialisierung und ermöglicht das selektive Weglassen von Nullwerten für eine prägnantere und effektivere XML-Ausgabe.
Das obige ist der detaillierte Inhalt vonWie kann ich Nullwerte unterdrücken, wenn ich den .NET XML-Serializer verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!