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

  • George McCarron

    George McCar

    29 Mayıs 2013
  • magnum33563

    magnum33563

    8 NİSAN 2011
  • mist64

    mist64

    30 Mayıs 2006