У мене є клас із нульовим int? тип даних встановлений для серіалізації як елемент xml. Чи є спосіб налаштувати його, щоб серіалізатор xml не серіалізував елемент, якщо значення дорівнює нулю?
Я спробував додати атрибут [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 замість null для елемента, який виглядає як