Heim >Backend-Entwicklung >C++ >Wie kann ich Nullwerte unterdrücken, wenn ich den .NET XML-Serializer verwende?

Wie kann ich Nullwerte unterdrücken, wenn ich den .NET XML-Serializer verwende?

Linda Hamilton
Linda HamiltonOriginal
2025-01-12 08:26:42962Durchsuche

How Can I Suppress Null Values When Using the .NET Xml Serializer?

.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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn