我有一个带有可空整型的类?将 datatype 设置为序列化为 xml 元素。有没有什么方法可以设置它,这样当值为 null 时 xml 序列化程序就不会序列化元素?
我试图添加[系统。Xml.序列化。XmlElement (IsNullable = false)]属性,但是我得到一个运行时序列化异常,说明反映类型的错误,因为“对于 Nullable 类型,IsNullable 可能没有设置为‘ false’。考虑使用「系统」。Int32’类型或从 XmlElement 属性中删除 IsNullable 属性。”
[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 为 null 的情况,我根本不需要 ID 元素,主要是因为当我在 MSSQL 使用 OPENXML 时,对于类似的元素,它返回0而不是 null