Ho una classe con un int nullable? tipo di dati impostato per serializzare come elemento xml. C'è un modo per configurarlo in modo che il serializzatore xml non serializzi l'elemento se il valore è nullo?
Ho provato ad aggiungere l'attributo [System.Xml.Serialization.XmlElement (IsNullable = false)], ma ottengo un'eccezione di serializzazione di runtime che dice che si è verificato un errore che riflette il tipo, perché "IsNullable potrebbe non essere impostato su 'false "per un tipo nullable. Prendi in considerazione l'utilizzo del tipo" System.Int32 "o la rimozione della proprietà IsNullable dall'attributo 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 precedente verrà serializzata in:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Ma per gli ID che sono nulli non voglio affatto l'elemento ID, principalmente perché quando uso OPENXML in MSSQL, restituisce uno 0 invece di nullo per un elemento che assomiglia