Сериализировать несколько классов в один xml файл
Есть проект, в нём несколько классов. Их нужно сериализировать. Вместо отдельных файлов хочется оба класса сериализовать в один xml файл. Как это можно сделать?
Код на данный момент: Первый класс, PRD1
[Serializable]
public class PRD1
{
private ObservableCollection<RList> _Provlist;
public ObservableCollection<RList> Provlist
{
get { return _Provlist; }
set { _Provlist = value; OnPropertyChanged(nameof(_Provlist)); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName]string propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public class RList
{
public bool IsControl { get; set; }
public string RegName { get; set; }
public int IdRegtype { get; set; }
}
Второй класс, Main_prop
[Serializable]
public class Main_prop
{
public string GameDate { get; set; }
public string Turn { get; set; }
public string CountryName { get; set; }
public Main_prop() { }
}
Сериализация
PRD1 prd = new PRD1();
XmlSerializer xsav = new XmlSerializer(typeof(PRD1));
string WritePath = "result.xaml";
using (StreamWriter sw = new StreamWriter(WritePath, false, System.Text.Encoding.UTF8))
{
xsav.Serialize(sw, prd);
}
Ответы (1 шт):
Автор решения: Alex F
→ Ссылка
[Serializable]
class RPD_and_prop
{
public PRD1 Rpd {get; set}
public Main_prop Prop {get; set}
}
RPD_and_prop p = new RPD_and_prop()
{
Rpd = new PRD1(),
Prop = new Main_prop();
};
XmlSerializer xsav = new XmlSerializer(typeof(RPD_and_prop));
string WritePath = "result.xml";
using (StreamWriter sw = new StreamWriter(WritePath, false, System.Text.Encoding.UTF8))
{
xsav.Serialize(sw, p);
}