Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menindas Nilai Null Apabila Menggunakan Serializer .NET Xml?
.Bersiri XML BERSIH: Mengendalikan Nilai Null
Pensiri .NET XML standard termasuk nilai nol secara lalai. Untuk mengecualikan ini, gunakan corak ShouldSerialize
. Corak ini membolehkan anda menentukan sama ada sesuatu sifat perlu disirikan.
Untuk setiap sifat yang memerlukan penindasan nilai nol, buat kaedah bernama ShouldSerialize{PropertyName}
. Sebagai contoh, sifat integer nullable MyNullableInt
memerlukan kaedah ini:
<code class="language-csharp">public bool ShouldSerializeMyNullableInt() { return MyNullableInt.HasValue; }</code>
Kaedah ini mengembalikan true
jika MyNullableInt
mempunyai nilai, mencetuskan siri. Jika tidak, ia mengembalikan false
, menghalang siri nilai nol.
Berikut ialah kelas contoh yang menunjukkan perkara ini:
<code class="language-csharp">public class Person { public string Name { get; set; } public int? Age { get; set; } public bool ShouldSerializeAge() { return Age.HasValue; } }</code>
Mensiri contoh:
<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>
XML yang terhasil meninggalkan elemen Age
kerana nilai nolnya:
<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>
Menggunakan kaedah ShouldSerialize
tersuai menyediakan kawalan berbutir ke atas penyirian, membolehkan peninggalan terpilih bagi nilai nol untuk output XML yang lebih ringkas dan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menindas Nilai Null Apabila Menggunakan Serializer .NET Xml?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!