2011-08-03 138 views
5

我的xml文檔包含一個可包含多個子元素的元素。在我的課,我申報財產爲:XML反序列化:將缺少的元素反序列化爲空屬性值

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

在反序列化,若<files>元素缺失,我要的文件屬性爲。但是,會發生什麼情況是文件被反序列化爲一個空的List對象。我如何防止這種情況發生?這實現了

+0

我的意思是,如果元素丟失,.... – superkinhluan

回答

3

一個選項是列表的封裝:

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; } 
} 

這裏,Foo.Filesnull如果沒有<files/>元素。

+0

謝謝。有沒有其他方式可以避免創建額外的課程。 – superkinhluan

+0

@superkinhluan - 據我所知,正如你所看到的,這個列表是急切地創建的 –