鉴于此 XML:
<Items>
<Item>a</Item>
<Item>b</Item>
</Items>
我怎样才能反序列化这个使用XmlSerializer
?要么进入某个自定义类型的数组,要么简单地进入string[]
.
我知道如果最里面的标签被称为“字符串”可以做到这一点,但我想保留一个自定义名称。
鉴于此 XML:
<Items>
<Item>a</Item>
<Item>b</Item>
</Items>
我怎样才能反序列化这个使用XmlSerializer
?要么进入某个自定义类型的数组,要么简单地进入string[]
.
我知道如果最里面的标签被称为“字符串”可以做到这一点,但我想保留一个自定义名称。
这是演示在 LINQPad 中使用 XmlSerializer 的一种方法
void Main()
{
using(var stream = new StringReader("<Items><Item>a</Item><Item>b</Item></Items>"))
{
var serializer = new XmlSerializer(typeof(Container));
var items = (Container)serializer.Deserialize(stream);
items.Dump();
}
}
[XmlRoot("Items")]
public class Container
{
[XmlElement("Item")]
public List<string> Items { get; set; }
}
这是使用 XDocument 的另一种方式
void Main()
{
var doc = XDocument.Parse("<Items><Item>a</Item><Item>b</Item></Items>");
var list = doc.Element("Items").Elements("Item").Select (d => (string)d);
list.Dump();
}