抑制 .NET XML 序列化中的空值
預設的 .NET XML 序列化程式包含空值,通常以「nil」屬性標示。 這可能會導致 XML 輸出不太理想。 本文示範了從序列化 XML 中乾淨地省略空值的技術。
我們可以利用 [XmlIgnore]
屬性或實作自訂序列化邏輯來實現此目的。
方法一:使用[XmlIgnore]
屬性
最簡單的方法是使用 [XmlIgnore]
屬性。 此屬性指示序列化程序在序列化過程中完全忽略該屬性。
<code class="language-csharp">public class MyClass { [XmlIgnore] public int? MyNullableInt { get; set; } public int MyOtherInt { get; set; } }</code>
此處,MyNullableInt
將從 XML 中排除,無論其值為何。
方法 2:使用 ShouldSerialize
為了獲得更多控制,請建立自訂 ShouldSerialize
方法。 此方法根據屬性的值決定是否應序列化屬性。
<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>
ShouldSerializeMyNullableInt
方法只有在 true
持有值時才傳回 MyNullableInt
;否則,它會從 XML 中省略。 這提供了對包含哪些空值的精細控制。
透過使用這兩種方法之一,您可以在 .NET XML 序列化過程中有效管理空值,從而獲得更清晰、更自訂的 XML 輸出。
以上是如何在 .NET XML 序列化中隱藏空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!