C# 使用列表反序列化对象列表

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:

<?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);
}