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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • Elly

    Elly

    3 EKİM 2005