Null yapılabilir int olan bir sınıfım var mı? veri türü bir xml öğesi olarak serileştirilecek şekilde ayarlandı. Değer boş ise xml serileştiricinin öğeyi serileştirmemesi için bunu ayarlamanın bir yolu var mı?
[System.Xml.Serialization.XmlElement (IsNullable = false)] özniteliğini eklemeyi denedim, ancak türü yansıtan bir hata olduğunu söyleyen bir çalışma zamanı serileştirme istisnası alıyorum, çünkü "IsNullable 'false olarak ayarlanamaz 'Null yapılabilir bir tür için.' System.Int32 'türünü kullanmayı veya IsNullable özelliğini XmlElement özniteliğinden kaldırmayı düşünü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 şu şekilde serileştirilecektir:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Ancak boş olan kimlikler için Kimlik öğesini hiç istemiyorum, çünkü MSSQL'de OPENXML kullandığımda, şöyle görünen bir öğe için boş yerine 0 döndürüyor