Как реализовать сериализацию Xml с унаследованными классами в C #
У меня есть два класса: базовый класс имени компонента и наследующий класс с именем DBComponent}
[Serializable]
public class Component
{
private string name = string.Empty;
private string description = string.Empty;
}
[Serializable]
public class DBComponent : Component
{
private List spFiles = new List();
// Storage Procedure Files
[XmlArrayItem("SPFile", typeof(string))]
[XmlArray("SPFiles")]
public List SPFiles
{
get { return spFiles; }
set { spFiles = value; }
}
public DBComponent(string name, string description)
: base(name, description)
{ }
}
[Serializable]
public class ComponentsCollection
{
private static ComponentsCollection instance = null;
private List components = new List();
public List Components
{
get { return components; }
set
{
components = value;
}
}
public static ComponentsCollection GetInstance()
{
if (ccuInstance == null)
{
lock (lockObject)
{
if (instance == null)
PopulateComponents();
}
}
return instance;
}
private static void PopulateComponents()
{
instance = new CCUniverse();
XmlSerializer xs = new XmlSerializer(instance.GetType());
instance = xs.Deserialize(XmlReader.Create("Components.xml")) as ComponentsCollection;
}
}
Я хочу читать \ писать из файла XML. Я знаю, что мне нужно реализовать класс Serialization for DBComponent, иначе он не будет его читать. Но я не могу найти для этого ни одной простой статьи. все статьи, которые я нашел, были слишком сложными для этого простого сценария.
XML-файл выглядит так:
Setup\TenantHistoricalSP.sql
Может кто-нибудь дать мне простой пример того, как читать этот вид XML-файла и что должно быть реализовано?
Спасибо
Лиор