views:

22

answers:

1

Is there a way to fill out a class using XML data instead of JSON? Example in marc's excellent answer.

I would like everything to be as close to that code except the input is an xml file instead of json.

+3  A: 

You could use XmlSerializer:

public class Foo
{
    public string Bar { get; set; }
}

class Program
{
    public static void Main()
    {
        var serializer = new XmlSerializer(typeof(Foo));
        var xml = "<Foo><Bar>beer</Bar></Foo>";
        using (var reader = new StringReader(xml))
        {
            var foo = (Foo)serializer.Deserialize(reader);
            Console.WriteLine(foo.Bar);
        }
    }
}
Darin Dimitrov
That looks right. Last time i looked at serialize code i had to put tons of attributes in the class. Is this not the case with XmlSerializer?
acidzombie24
This will depend on what class you are trying to serialize/deserialize to what XML structure, but yes attributes might be needed. There's no magic. If the XML structure doesn't match your object structure you need to instruct the serializer how to handle it.
Darin Dimitrov
Thats exactly what i wanted to hear.
acidzombie24