SORU
28 NİSAN 2011, PERŞEMBE


Xml serileştirme - null değerleri Gizle

Bir standart kullanarak .NET Xml seri hale getirici, tüm boş değerleri saklamak için herhangi bir yolu var mı? Aşağıda benim sınıfın bir örnek çıktı. Eğer null olarak ayarlanmışsa, null tamsayılar çıkış yapmak istemiyorum.

Geçerli Xml çıktısı:

<?xml version="1.0" encoding="utf-8"?>
<myClass>
   <myNullableInt p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
   <myOtherInt>-1</myOtherInt>
</myClass>

Ben ne istiyorum:

<?xml version="1.0" encoding="utf-8"?>
<myClass>
   <myOtherInt>-1</myOtherInt>
</myClass>

CEVAP
28 NİSAN 2011, PERŞEMBE


Eğer kalıp üyesi seri hale getirmek gerekir ise XmlSerializer söyler ShouldSerialize{PropertyName} bir işlev oluşturabilirsiniz.

Eğer sınıf özelliği MyNullableInt denir, örneğin, olabilir

public bool ShouldSerializeMyNullableInt() 
{
  return MyNullableInt.HasValue;
}

İşte tam bir örnek

public class Person
{
  public string Name {get;set;}
  public int? Age {get;set;}
  public bool ShouldSerializeAge()
  {
    return Age.HasValue;
  }
}

Aşağıdaki kodu ile sıralanmış

Person thePerson = new Person(){Name="Chris"};
XmlSerializer xs = new XmlSerializer(typeof(Person));
StringWriter sw = new StringWriter();
xs.Serialize(sw, thePerson);

Aşağıdaki XML sonuçları - Yaş yoktur hayır Dikkat edin

<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>Chris</Name>
</Person>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006
  • Shanice Caruthers

    Shanice Caru

    27 EKİM 2011