Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menindas Nilai Null Apabila Menggunakan Serializer .NET Xml?

Bagaimanakah Saya Boleh Menindas Nilai Null Apabila Menggunakan Serializer .NET Xml?

Linda Hamilton
Lepaskan: 2025-01-12 08:26:42
asal
942 orang telah melayarinya

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

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

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

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

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

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!

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