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

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006