Pregunta

I have an error deserializing XML in C#

        public static void Main (string[] args)
        {
            String content;
            content = "<Users><User><postedBy>Bob</postedBy><name>1</name></User><User><postedBy>Bob2</postedBy><name>2</name></User></Users>";
            TextReader reader = new StringReader (content);
            XmlSerializer s = new XmlSerializer (typeof(User));
            List<User> r = (List<User>)s.Deserialize (reader);
            int i =0;
            foreach(User user in r)
            {
                Console.WriteLine (r[i]);
                i++;
            }
        }


    }

    public class User
    {
        [XmlElement(ElementName = "postedBy")]
        public string PostedBy { get; set; }
        [XmlElement(ElementName = "name")]
        public string name { get; set; }
    }

enter image description here

¿Fue útil?

Solución

Create another class to handle your root element:

[XmlRoot(ElementName = "users")]
public class Users
{
    [XmlElement(ElementName = "user")]
    public List<User> users { get; set; }
}

And deserialize to typeof(Users):

XmlSerializer s = new XmlSerializer(typeof(Users));
Users r = (Users)s.Deserialize(reader);

Then you can access all the User elements by r.users

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top