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

  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006
  • SamsTech

    SamsTech

    4 NİSAN 2014
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012