Mam klasę z wartością nullable int? typ danych ustawiony na serializację jako element xml. Czy istnieje sposób, aby skonfigurować to tak, aby serializator xml nie serializował elementu, jeśli wartość jest równa null?
Próbowałem dodać atrybut [System.Xml.Serialization.XmlElement (IsNullable = false)], ale pojawia się wyjątek serializacji środowiska wykonawczego z informacją, że wystąpił błąd odzwierciedlający typ, ponieważ „IsNullable może nie być ustawiona na„ false ” 'dla typu dopuszczającego wartość null. Rozważ użycie typu „System.Int32” lub usunięcie właściwości IsNullable z atrybutu 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;
}
}
...
}
Powyższa klasa będzie serializowana do:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Ale w przypadku identyfikatorów, które są zerowe, w ogóle nie chcę elementu ID, głównie dlatego, że kiedy używam OPENXML w MSSQL, zwraca 0 zamiast null dla elementu, który wygląda jak