I need inputs in converting an dynamic xml to defined c# object model
My sample xml is as below :
<?xml version="1.0" encoding="utf-8" ?>
<Persons>
<Person>
<Id>10</Id>
<FirstName> Dino </FirstName>
<LastName> Esposito </LastName>
<Addresses>
<Address>
<AddressType>BillTo</AddressType>
<Street1></Street1>
<Street2></Street2>
<Street3></Street3>
<City>Moscow</City>
</Address>
<Address>
<AddressType>ShipTo</AddressType>
<Street1></Street1>
<Street2></Street2>
<Street3></Street3>
<City>Moscow</City>
</Address>
<Address>
<AddressType>Contact</AddressType>
<Street1></Street1>
<Street2></Street2>
<Street3></Street3>
<City>Moscow</City>
</Address>
</Addresses>
</Person>
</Persons>
I am expecting the values of this xml to be converted to C# object at run time. I would want an object similar to the following to be defined: My Expected class object C# is as below:
public class Person
{
public int Id { get; set; }
public String FirstName { get; set; }
public String LastName { get; set; }
public IList<Address> Addresses { get; set; }
}
public class Address
{
public string AddressType { get; set; }
public string Street1 { get; set; }
public string Street2 { get; set; }
public string Street3 { get; set; }
public string City { get; set; }
}
I went through dynamic and ExpandoObject in C# 4.0, this approach is allowing me to get values dynamically by using keys. I dont know how i can populate these to my datamodel.
Note: I dont want to define this class model structure, this keeps changing over period of time. I am looking for a solution which allows me to get values like DynamicObject.Addresses.Address[0].City.
Kindly give your inputs.