Я пытаюсь десериализовать документ XML в список <>.Моя цель состоит в том, чтобы у List <> был публичный статический метод, который возвращает себя заполненный из документа XML.
Вот XML:
<?xml version="1.0"?>
<root>
<item>
<name>Blue</name>
</item>
<item>
<name>Red</name>
</item>
</root>
Вот класс для элемента(BillingItem.cs):
using System;
using System.Xml.Serialization;
namespace DeserializeExample
{
[Serializable]
[XmlRoot("item")]
public class BillingItem
{
[XmlElement("name")]
public string Description { get; set; }
}
}
Вот класс, который является списком (BillingItems.cs):
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace DeserializeExample
{
[Serializable]
[XmlRoot("root")]
public class BillingItems : List<BillingItem>
{
public static BillingItems GetBillingItems()
{
using (TextReader reader = new StreamReader("BillingItems.xml"))
{
XmlSerializer serializer = new XmlSerializer(typeof(BillingItems));
return (BillingItems)serializer.Deserialize(reader);
}
}
}
}
А вот консольное приложение с примером того, как яхотел бы иметь возможность получить список (Program.cs):
namespace DeserializeExample
{
class Program
{
static void Main(string[] args)
{
BillingItems billingItems = BillingItems.GetBillingItems();
}
}
}
Когда консольное приложение запускается, список пуст.Я думаю, что это связано с тем, как я использую атрибуты, но я не могу определить, как заставить это работать.
Я надеюсь, что пример прост, хорошо объяснен и что кто-то может помочь.