我的xml文档有一个可以包含多个子元素的元素。在我的课堂上,我将该属性声明为:
[XmlArray("files", IsNullable = true)]
[XmlArrayItem("file", IsNullable = false)]
public List<File> Files { get; set; }
在反序列化期间,如果缺少<files>
元素,我希望Files属性为 null 。但是,会发生的事情是将文件反序列化为空的List对象。我该如何预防呢?
答案 0 :(得分: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.Files
元素,null
将为<files/>
。