Ich habe eine Klasse mit einem nullbaren int? Datentyp, der als XML-Element serialisiert werden soll. Gibt es eine Möglichkeit, es so einzurichten, dass der XML-Serializer das Element nicht serialisiert, wenn der Wert null ist?
Ich habe versucht, das Attribut [System.Xml.Serialization.XmlElement (IsNullable = false)] hinzuzufügen, erhalte jedoch eine Laufzeit-Serialisierungsausnahme, die besagt, dass ein Fehler aufgetreten ist, der den Typ widerspiegelt, da "IsNullable möglicherweise nicht auf" false "gesetzt ist 'für einen Nullable-Typ. Verwenden Sie den Typ' System.Int32 'oder entfernen Sie die IsNullable-Eigenschaft aus dem XmlElement-Attribut. "
[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;
}
}
...
}
Die obige Klasse wird serialisiert zu:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Aber für IDs, die null sind, möchte ich das ID-Element überhaupt nicht, vor allem, weil bei Verwendung von OPENXML in MSSQL für ein Element, das aussieht, eine 0 anstelle von null zurückgegeben wird