ฉันมีคลาสที่มี int ว่างเปล่า? ประเภทข้อมูลตั้งค่าให้เป็นอนุกรมเป็นองค์ประกอบ xml มีวิธีใดบ้างในการตั้งค่าเพื่อให้ xml serializer จะไม่ทำให้อนุกรมขององค์ประกอบถ้าค่าเป็นโมฆะ
ฉันพยายามเพิ่มแอตทริบิวต์ [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 ที่เป็นโมฆะฉันไม่ต้องการองค์ประกอบ ID เลยโดยหลักแล้วเพราะเมื่อฉันใช้ OPENXML ใน MSSQL จะส่งคืน 0 แทนค่าว่างสำหรับองค์ประกอบที่ดูเหมือน