How can I deserialize Xml list using Restsharp?

nemke picture nemke · Nov 2, 2010 · Viewed 7.1k times · Source

I have an xml like this

<?xml version="1.0" encoding="utf-8"?> 
    <xml> 
            <item> 
                    <accountid>1</accountid> 
                    <accounttypeid>1</accounttypeid> 
                    <accounttypename/> 
                    <accountbankid>1</accountbankid> 
                    <accountbankname/> 
                    <accountsaldo>0</accountsaldo> 
            </item> 
            <item> 
                    <accountid>2</accountid> 
                    <accounttypeid>1</accounttypeid> 
                    <accounttypename/> 
                    <accountbankid>2</accountbankid> 
                    <accountbankname/> 
                    <accountsaldo>0</accountsaldo> 
            </item> 
            ... 
    </xml> 

I want to deserialize this xml list to POCO object which is

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

I found great product RestSharp for working with rest client. I want to use its deserializer and I tried 2 approaches.

1) I tried

request.RootElement = "item";

var response = Execute<Account>(request);

and I only got first Item element which is logical.

2) When I try something like

request.RootElement = "xml";

var response = Execute<List<Account>>(request);

I got null.

Where am I wrong with this?

UPDATE: The solution is in accepted answer comments

Answer

John Sheehan picture John Sheehan · Nov 2, 2010

It should work if you rename the Account class to Item and use Execute<List<Item>>(request). You don't need to specify a RootElement value.