Saya memiliki kelas dengan int nullable? datatype diatur ke serial sebagai elemen xml. Apakah ada cara untuk mengaturnya sehingga xml serializer tidak akan membuat serial elemen jika nilainya null?
Saya telah mencoba menambahkan atribut [System.Xml.Serialization.XmlElement (IsNullable = false)], tetapi saya mendapatkan pengecualian serialisasi runtime yang mengatakan ada kesalahan yang mencerminkan jenisnya, karena "IsNullable mungkin tidak disetel ke 'salah 'untuk tipe Nullable. Pertimbangkan untuk menggunakan tipe' System.Int32 'atau hapus properti IsNullable dari atribut XmlElement. "
[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;
}
}
...
}
Kelas di atas akan berseri menjadi:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Tetapi untuk ID yang null saya tidak menginginkan elemen ID sama sekali, terutama karena ketika saya menggunakan OPENXML di MSSQL, ia mengembalikan 0, bukan null untuk elemen yang terlihat seperti