null可能なintを持つクラスがありますか?xml要素としてシリアル化するように設定されたデータ型。値がnullの場合にXMLシリアライザーが要素をシリアル化しないように設定する方法はありますか?
[System.Xml.Serialization.XmlElement(IsNullable = false)]属性を追加しようとしましたが、「IsNullableが 'falseに設定されていない可能性があるため、タイプを反映するエラーがあったことを示すランタイムシリアル化例外が発生します。 'Nullableタイプの場合。'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を使用すると、次のような要素に対してnullの代わりに0が返されるためです。