convertir xml dynamique pour objet de c#

J'ai besoin d'entrées dans la conversion d'une dynamique xml définis objet c# modèle

Mon exemple de xml est comme ci-dessous :

<?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>

Je m'attends à ce que les valeurs de ce code xml pour être converti en C# de l'objet au moment de l'exécution.
Je voudrais un objet semblable à la suivante à être définis:
Mon Attendus objet de classe C# est comme ci-dessous:

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

Je suis passé par la dynamique et ExpandoObject en C# 4.0, cette approche me permet d'obtenir des valeurs dynamiquement en utilisant les touches. Je ne sais pas comment je peux remplir ces pour mon modèle de données.

Remarque: je ne veux pas définir cette classe de modèle de structure, il ne cesse de changer au cours de la période de temps. Je suis à la recherche d'une solution qui me permet d'obtenir des valeurs comme DynamicObject.Les adresses.Adresse[0].Ville.

De bien vouloir donner vos entrées.

  • Qu'est-ce que "xml dynamique"? Avez-vous essayez par exemple LinqToXml?
  • Je ne veux pas garder l'onglet sur le contenu xml,ce qui maintient sur le changement. mon modèle de données doit également évoluer de façon dynamique basé sur xml d'entrée sur l'exécution.
  • J'ai essayé de linq to Xml, je ne suis pas en mesure de travailler avec l'ensemble de l'élément. ex: adresses
  • Pourquoi ne pas vous query(LINQ) votre XML à l'aide de XPath? msdn.microsoft.com/en-us/library/bb387057.aspx
  • Comment avez-vous l'intention de votre modèle de données à changement sans recompiler? c'est à dire si une Personne commence à comprendre un DateOfBirth votre classe Personne est hors de date.
  • Personnellement, je ne vois pas comment il est mieux de travailler avec des objets dynamiques que de définir des classes. Si/lorsque la source de données les modifications que vous allez avoir à refactoriser le code de toute façon. Il est beaucoup plus facile de le faire avec le refactoring si vous avez cours. Mais c'est juste mes 2 cents.
  • Il semble que vous allez avoir à donner un cas concret d'utilisation de cette approche. Veuillez expliquer pourquoi vous voulez, même à utiliser cette approche.

InformationsquelleAutor KRP | 2013-05-20