我可以使用反序列化从不是由序列化生成的 xml 生成对象吗?
说,如果我有这样的 xml 文件
<Person>
<Cop name ="n1" />
<Cop name ="n2" />
</Person>
我可以将其反序列化为具有 IEnumberable 的对象人员吗?还是我需要使用 IEnumerable 属性序列化 Object Person 然后反序列化?
我可以使用反序列化从不是由序列化生成的 xml 生成对象吗?
说,如果我有这样的 xml 文件
<Person>
<Cop name ="n1" />
<Cop name ="n2" />
</Person>
我可以将其反序列化为具有 IEnumberable 的对象人员吗?还是我需要使用 IEnumerable 属性序列化 Object Person 然后反序列化?
当然你可以反序列化没有通过序列化生成的 XML,你只需要确保你生成或编写了正确的类结构,并带有合适的属性来匹配 XML 结构。而且我不确定 anIEnumerable
是否可行,但可以使用List<T>
or T[]
。以下是带有 的示例List<T>
:
string xml = @"<Person>
<Cop name =""n1"" />
<Cop name =""n2"" />
</Person>";
XmlSerializer ser = new XmlSerializer(typeof(Person));
Person p1 = (Person)ser.Deserialize(new StringReader(xml));
foreach (Cop cop in p1.Cops)
{
Console.WriteLine(cop.Name);
}
}
}
public class Person
{
[XmlElement(ElementName="Cop")]
public List<Cop> Cops { get; set; }
}
public class Cop
{
[XmlAttribute(AttributeName="name")]
public string Name { get; set; }
}
那输出
n1
n2