【发布时间】:2019-07-08 14:21:15
【问题描述】:
在反序列化包含空数组的 XML 时,我希望该数组为空。相反,我得到一个包含单个对象的数组,所有属性都设置为 null。
类:
[XmlRoot(ElementName = "item")]
public class Item
{
[XmlElement(ElementName = "name")]
public string Name { get; set; }
}
[XmlRoot(ElementName = "thing")]
public class Thing
{
[XmlElement(ElementName = "items")]
public Item[] Items { get; set; }
}
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<thing>
<items/>
</thing>
测试:
[Fact]
public void DeserializeTest()
{
var xml = ""; // XML here
var serializer = new XmlSerializer(typeof(Thing));
using (TextReader reader = new StringReader(xml))
{
var thing = serializer.Deserialize(reader) as Thing;
thing.Items.Should().BeNull(); // fails
}
}
我一定是错过了什么?
【问题讨论】:
-
我在想它,我有一个问题:如果它不是空的,里面的物品会是什么?
-
@Adam
- 类似的东西Bob -
请注意 - 反序列化的对象包含一个空数组,这实际上比它为空更可取。
标签: c# .net xml deserialization