Tôi có một lớp với int nullable? datatype được đặt để tuần tự hóa dưới dạng phần tử xml. Có cách nào để thiết lập nó để bộ tuần tự xml sẽ không tuần tự hóa phần tử nếu giá trị là null không?
Tôi đã cố gắng thêm thuộc tính [System.Xml.Serialization.XmlElement (IsNullable = false)], nhưng tôi nhận được một ngoại lệ tuần tự hóa thời gian chạy cho biết có lỗi khi phản ánh loại, vì "IsNullable có thể không được đặt thành 'false "cho kiểu Nullable. Hãy xem xét sử dụng kiểu" System.Int32 "hoặc xóa thuộc tính IsNullable khỏi thuộc tính 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;
}
}
...
}
Lớp trên sẽ tuần tự thành:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Nhưng đối với các ID là null, tôi không muốn phần tử ID nào cả, chủ yếu vì khi tôi sử dụng OPENXML trong MSSQL, nó sẽ trả về 0 thay vì null cho một phần tử trông giống như