如何将xml反序列化为对象

如何将xml反序列化为对象

<StepList>
  <Step>
    <Name>Name1</Name>
    <Desc>Desc1</Desc>
  </Step>
  <Step>
    <Name>Name2</Name>
    <Desc>Desc2</Desc>
  </Step></StepList>

我有这个XML,我应该如何建模类,以便我可以使用XmlSerializer对象反序列化它?


函数式编程
浏览 731回答 2
2回答

慕雪6442864

以上评论是正确的。你错过了装饰者。如果你想要一个通用的反序列化器,你可以使用它。&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;T&nbsp;DeserializeXMLFileToObject<T>(string&nbsp;XmlFilename) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;returnObject&nbsp;=&nbsp;default(T); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(XmlFilename))&nbsp;return&nbsp;default(T); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StreamReader&nbsp;xmlStream&nbsp;=&nbsp;new&nbsp;StreamReader(XmlFilename); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;serializer&nbsp;=&nbsp;new&nbsp;XmlSerializer(typeof(T)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnObject&nbsp;=&nbsp;(T)serializer.Deserialize(xmlStream); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;ex) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExceptionLogger.WriteExceptionToConsole(ex,&nbsp;DateTime.Now); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;returnObject; &nbsp;&nbsp;&nbsp;&nbsp;}然后你会这样称呼它:MyObjType&nbsp;MyObj&nbsp;=&nbsp;DeserializeXMLFileToObject<MyObjType>(FilePath);
打开App,查看更多内容
随时随地看视频慕课网APP