J'ai une classe avec un int nullable? type de données défini pour être sérialisé en tant qu'élément xml. Existe-t-il un moyen de le configurer pour que le sérialiseur XML ne sérialisera pas l'élément si la valeur est nulle?
J'ai essayé d'ajouter l'attribut [System.Xml.Serialization.XmlElement (IsNullable = false)], mais j'obtiens une exception de sérialisation d'exécution indiquant qu'il y avait une erreur reflétant le type, car "IsNullable peut ne pas être défini sur 'false 'pour un type Nullable. Pensez à utiliser le type' System.Int32 'ou à supprimer la propriété IsNullable de l'attribut 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;
}
}
...
}
La classe ci-dessus sera sérialisée pour:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Mais pour les ID qui sont nuls, je ne veux pas du tout l'élément ID, principalement parce que lorsque j'utilise OPENXML dans MSSQL, il renvoie un 0 au lieu de null pour un élément qui ressemble à