Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghalang Nilai Null daripada Muncul dalam Pensirian XML .NET?

Bagaimanakah Saya Boleh Menghalang Nilai Null daripada Muncul dalam Pensirian XML .NET?

Barbara Streisand
Barbara Streisandasal
2025-01-12 06:13:47816semak imbas

How Can I Prevent Null Values from Appearing in .NET XML Serialization?

Menghapuskan Nilai Null Semasa .NET XML Serialisasi

Tingkah laku lalai .NET XmlSerializer termasuk nilai nol dalam output XML bersiri. Ini selalunya tidak diingini. Mari kita periksa bagaimana untuk mencegah perkara ini. Pertimbangkan XML berikut yang dijana daripada kelas sampel:

<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><myclass><mynullableint p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance"></mynullableint><myotherint>-1</myotherint></myclass></code>

Perhatikan bahawa mynullableint, integer nullable yang ditetapkan kepada null, masih terdapat dalam XML. Penyelesaiannya terletak pada penggunaan corak ShouldSerialize.

Untuk mengecualikan harta MyNullableInt null, laksanakan kaedah ini dalam kelas anda:

<code class="language-csharp">public bool ShouldSerializeMyNullableInt()
{
  return MyNullableInt.HasValue;
}</code>

Kaedah ini mengawal bersiri secara bersyarat. Ia mengembalikan true hanya jika MyNullableInt memegang nilai, memastikan kemasukannya dalam XML. Jika tidak, ia mengembalikan false, menekan elemen dengan berkesan.

Berikut ialah contoh lengkap:

<code class="language-csharp">public class Person
{
  public string Name { get; set; }
  public int? Age { get; set; }
  public bool ShouldSerializeAge()
  {
    return Age.HasValue;
  }
}</code>

Dengan kaedah ShouldSerializeAge ini, kod berikut menghasilkan XML tanpa elemen Age kerana ia adalah batal:

<code class="language-csharp">Person thePerson = new Person() { Name = "Chris" };
XmlSerializer xs = new XmlSerializer(typeof(Person));
StringWriter sw = new StringWriter();
xs.Serialize(sw, thePerson);</code>

XML yang terhasil:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Nilai Null daripada Muncul dalam Pensirian XML .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn