我有一个可以为null int的类?数据类型设置为序列化为xml元素.有没有办法设置它,使xml序列化程序在值为null时不会序列化元素?
我已try 添加[System.Xml.Serialization.XmlElement(IsNullable=false)]属性,但收到运行时序列化异常,指出反映该类型时出错,因为"对于可为空的类型,IsNullable可能未设置为‘False’.请考虑使用‘System.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>
但是对于null的ID,我根本不需要ID元素,主要是因为当我在MSSQL中使用OPENXML时,它会返回0,而不是null