SORU
28 EKİM 2008, Salı


Seri hale null bir int

Null bir int ile bir sınıf var mı? veri bir xml öğesi olarak seri hale getirmek için ayarlayın. Xml serialializer eğer değer boş ise öğesini seri hale getirmek onu kurmak için herhangi bir yolu var mı?

[Sistem.eklemeye çalıştım Xml.Seri hale getirme.XmlElement(IsNullable=false)] özniteliği, ama ben bir zamanı seri hale getirme istisna söyleyerek bir hata yansıtan yazın, çünkü "IsNullable olmayabilir ayarlamak için 'yanlış' için bir Null yazın. Kullanmayı düşünün 'Sistemi.Int32' ya XmlElement özniteliği IsNullable özelliği kaldırarak yazın."

[Serializable]
[System.Xml.Serialization.XmlRoot("Score", Namespace = "http://mycomp.com/test/score/v1")]
public class Score
{
    private int? iID_m;
    ...

    /// <summary>
    /// 
    /// </summary>        
    public int? ID 
    { 
        get 
        { 
            return iID_m; 
        } 
        set 
        { 
            iID_m = value; 
        } 
    }
     ...
}

Yukarıdaki sınıf için serailize

<Score xmlns="http://mycomp.com/test/score/v1">
    <ID xsi:nil="true" />
</Score>

Ama Kimlikleri için null öncelikle MSSQL Açık XML kullandığımda, 0 değerini döndürür, çünkü KİMLİK öğesi istiyorum, yerine gibi görünen bir öğe için boş değilim

CEVAP
29 EKİM 2008, ÇARŞAMBA


XmlSerializer ShouldSerialize{Foo}() desen destekleyen bir yöntemi ekleyebilirsiniz:

public bool ShouldSerializeID() {return ID.HasValue;}

Eğer XmlSerializer bir desteklerse de {Foo}Specified desen var - emin değilim.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • KSI

    KSI

    25 Temmuz 2009
  • listedabive

    listedabive

    30 Ocak 2007
  • Marques Brownlee

    Marques Brow

    21 Mart 2008