Я пытаюсь создать коллекцию бизнес-объектов из следующего XML-документа, используя .net 4.0 / c #
<WebServices ErrorFound="False" ServerDateTime="30/11/2010 14:58:58">
<Results>
<Users TotalResults="5">
<UserName UserID="2">John</UserName>
<UserName UserID="3">Dave</UserName>
<UserName UserID="4">Jim</UserName>
<UserName UserID="5">Bob</UserName>
</Users>
</Results>
</WebServices>
Это класс, который мне нужно создать
public class User
{
public string Name { get; set; }
public int ID { get; set; }
}
Каждый из дочерних элементов Users должен быть новым экземпляром класса.
Пока у меня есть этот метод, который принимает XmlDocument.
public static IEnumerable<User> GetUser(XmlDocument xmlDoc)
{
XmlReader reader = XmlReader.Create(new StringReader(xmlDoc.OuterXml));
XDocument doc = XDocument.Load(reader);
var user = from u in doc.Descendants("WebServices").DescendantsAndSelf("Users")
select new User()
{
Name = u.Element("UserName").Value,
ID = int.Parse(u.Element("UserName").Attribute("UserID").Value)
};
List<User> userInstance = user.ToList();
IEnumerable<User> users= from u in userInstance
select u;
return users;
}
Это прекрасно работает, если речь идет о создании одного экземпляра объекта из первого дочернего элемента, но я не уверен, как создать несколько экземпляров из всех элементов.
Мне нужно иметь возможность вернуть коллекцию объектов пользователя, например Collection<User> users = new Collection<User>()
Я мог бы лаять совсем не на то дерево. Любая помощь очень ценится.