Tôi đang sử dụng .NET 3.0 DataContractSerializer mới. Tôi có cả hai mục Nullable < > và Danh sách <> các đối tượng mà tôi sắp xếp theo thứ tự. Ví dụ:Tôi có thể cấu hình DataContractSerializer để không tạo các phần tử tùy chọn (tức là Nullable <> và List <>) trong XML đầu ra không?
[DataContract(Namespace = "")]
class Test
{
public static void Go()
{
Test test = new Test();
var dcs = new DataContractSerializer(typeof(Test));
dcs.WriteObject(new StreamWriter("test.xml").BaseStream, test);
}
[DataMember]
public Nullable<int> NullableNumber = null;
[DataMember]
public int Number = 5;
[DataMember]
public List<int> Numbers = new List<int>();
}
Khi .NET sắp xếp một danh sách trống hoặc rỗng, nó đặt thành phần tử nil (cho Nullable) và trống (cho danh sách) vào XML. Ví dụ trên tạo:
<Test xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<NullableNumber i:nil="true"/>
<Number>5</Number>
<Numbers xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
</Test>
Vì lý do tôi không có thời gian để mô tả Tôi muốn loại bỏ các yếu tố NullableNumber và số dư thừa, như vậy:
<Test xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Number>5</Number>
</Test>
Thật vậy, deserializes tập tin trên với serializer tốt.
Cảm ơn sự giúp đỡ của bạn!