C# 使用列表反序列化对象列表
我有以下XML:C# 使用列表反序列化对象列表,c#,xml,list,xml-deserialization,C#,Xml,List,Xml Deserialization,我有以下XML: <?xml version="1.0" encoding="utf-8"?> <CallEvents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <CallEvent> <Time>2014-02-24T06:44:27.12</Time> &l
<?xml version="1.0" encoding="utf-8"?>
<CallEvents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CallEvent>
<Time>2014-02-24T06:44:27.12</Time>
<Type>Inner</Type>
<Fs>
<StrPair>
<Key>Name</Key>
<Value>Call1</Value>
</StrPair>
<StrPair>
<Key>Owner</Key>
<Value>Ali</Value>
</StrPair>
</Fs>
</CallEvent>
<CallEvent>
<Time>2014-02-24T06:44:29.089</Time>
<Type>Outer</Type>
<Fs>
<StrPair>
<Key>Name</Key>
<Value>Call2</Value>
</StrPair>
<StrPair>
<Key>Id</Key>
<Value>3242</Value>
</StrPair>
<StrPair>
<Key>Another</Key>
<Value>123</Value>
</StrPair>
</Fs>
</CallEvent>
</CallEvents>
我已经用了一段时间了,所以代码可能需要一些修改
CallEvents events;
using(XmlReader reader = XmlReader.Create("call_events.xml"))
{
XmlDeserializer deSerializer = new XmlDeserializer(typeof(CallEvents));
events = (CallEvents)deSerializer.Deserialize(reader);
}
“我做错了什么?”-您忽略了异常。@CodeCaster什么异常?它运行时没有任何异常。如果您没有实际告诉我们问题,我们如何判断您做错了?如果您删除了自定义的
get
/set
实现的Fs
属性,它能工作吗?@anatoligumennyi如果您需要控制反序列化(以填充字典)然后您可以让您的CallEvent
类实现IXmlSerializable
并重写ReadXml
方法。
CallEvents events;
using(XmlReader reader = XmlReader.Create("call_events.xml"))
{
XmlDeserializer deSerializer = new XmlDeserializer(typeof(CallEvents));
events = (CallEvents)deSerializer.Deserialize(reader);
}