2011-08-03 54 views
5

Tài liệu xml của tôi có phần tử có thể chứa nhiều phần tử con. Trong lớp học của tôi, tôi tuyên bố tài sản như:XML deserialization: Deserialize phần tử bị thiếu thành giá trị tài sản rỗng

[XmlArray("files", IsNullable = true)] 
[XmlArrayItem("file", IsNullable = false)] 
public List<File> Files { get; set; } 

Trong deserialization, nếu các yếu tố <files> là mất tích, tôi muốn thuộc tính tập tin được rỗng. Tuy nhiên, những gì xảy ra là các tập tin được deserialized vào một đối tượng List trống. Làm cách nào để ngăn chặn điều đó?

+0

Ý tôi là, nếu thiếu phần tử , ... – superkinhluan

Trả lời

3

Một lựa chọn mà đạt được đó là đóng gói của danh sách:

public class Foo 
{ 
    [XmlElement("files", IsNullable = true)] 
    public FooFiles Files { get; set; } 

} 
public class FooFiles 
{ 
    [XmlElement("file", IsNullable = false)] 
    public List<File> Files { get; set; } 
} 

Ở đây, Foo.Files sẽ null nếu không có yếu tố <files/>.

+0

Cảm ơn bạn. Có cách nào khác có thể tránh tạo thêm lớp. – superkinhluan

+0

@superkinhluan - không xa như tôi biết; như bạn có thể thấy, danh sách được tạo ra háo hức –

Các vấn đề liên quan