Как установить несколько значений свойств с одинаковым именем и значением счетчика, используя отражение? - PullRequest
1 голос
/ 27 декабря 2011

У меня есть класс с отдельным полем для Email.Тогда у меня есть поля как Email1, Email2, ..., Email9

Я получаю значения в виде XML, как это

<user Email="abc@gmail.com">
   <Contact Name="test1" Email="a1@qqq.com"/>
   <Contact Name="test2" Email="a2@qqq.com"/>
</user>

Не может быть контактаили до девяти контактов в одном пользователе.Как я могу присвоить эти значения моим свойствам, используя linq?

1 Ответ

0 голосов
/ 27 декабря 2011

Для лучшего дизайна у вас должен быть объект Contact в дополнение к вашему классу User, поэтому у каждого пользователя может быть List<Contact>, как вы описали следующим образом:

public class User
{
    public List<Contact> Contacts { get; set; }
    public string Email { get; set; }
}

public class Contact
{
    public string Name { get; set; }
    public string Email { get; set; }
}

Тогда запрос linq, используемый для заполнения класса, может выглядеть следующим образом:

XElement xmlDoc = XElement.Load(@"..\Users.xml");
var users = from x in xmlDoc.Elements()
            select new User
            {                
               Email = (string) x.Attribute("Email"),
               Contacts = new List<Contact>(
                          from c in x.Elements()
                          select new Contact
                          {
                              Name = (string) c.Attribute("Name"),
                              Email = (string) c.Attribute("Email")
                          }
               )
            };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...