如何使用Restsharp反序列化Xml列表?
我有这样的xml
1 1 1 0 2 1 2 0 ...
我想将这个xml列表反序列化为POCO对象
public class Account { public string AccountId { get; set; } public string AccountTypeId { get; set; } public string AccountTypeName { get; set; } public string AccountBankId { get; set; } public string AccountBankName { get; set; } public string AccountSaldo { get; set; } }
我找到了很棒的产品RestSharp与rest客户端一起工作。 我想使用它的解串器,我尝试了两种方法。
1)我试过了
request.RootElement = "item";
var response = Execute(request);
而我只有第一个符合逻辑的Item元素。
2)当我尝试类似的东西时
request.RootElement = "xml";
var response = Execute<List>(request);
我没了。
我错在哪里?
更新 :解决方案在接受的答案评论中
如果将Account
类重命名为Item
并使用Execute
它应该可以工作。 您无需指定RootElement值。 >(request)
不知道出了什么问题,但我确信John会很快告诉你:-)同时,为什么不用手工方式呢:
var root = XElement.Parse(xmlString); var accounts = from it in root.Element("xml").Elements("item") select new Account() { AccountId = it.Element("accountid").Value, AccountTypeId = it.Element("accounttypeid").Value, AccountTypeName = it.Element("accounttypename").Value, AccountBankId = it.Element("banktypeid").Value, AccountBankName = it.Element("banktypename").Value, AccountSaldo = it.Element("accountsaldo").Value };
使用XLinq,它非常干净。 通过向XElement添加一些扩展方法,您可以使其更加清晰,并且可以恢复缺少的元素/属性。