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
Lepaskan: 2025-01-12 06:13:47
asal
863 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan