У меня есть класс с нулевым int? datatype, установленный для сериализации как элемент xml. Есть ли способ настроить его, чтобы XML-сериализатор не сериализовал элемент, если значение равно null?
Я попытался добавить атрибут [System.Xml.Serialization.XmlElement(IsNullable = false)], но я получил исключение сериализации во время выполнения, указав, что произошла ошибка, отражающая тип, поскольку "IsNullable" может не быть установлен на "false" для типа Nullable. Рассмотрим использование типа "System.Int32" или удаление свойства IsNullable из атрибута 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;
}
}
...
}
Вышеприведенный класс будет сериализоваться на:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Но для идентификаторов, которые являются нулями, я вообще не хочу элемент ID, прежде всего потому, что, когда я использую OPENXML в MSSQL, он возвращает 0 вместо нуля для элемента, который выглядит как