我一直在使用以下代码序列化内容的传统方式
private void SaveToXml(IdentifiableEntity IE)
{
try
{
XmlSerializer serializer = new XmlSerializer(IE.GetType());
TextWriter textWriter = new StreamWriter(IE.FilePath);
serializer.Serialize(textWriter, IE);
textWriter.Close();
}
catch (Exception e )
{
Console.WriteLine("erreur : "+ e);
}
}
private T LoadFromXml<T>(string path)
{
XmlSerializer deserializer = new XmlSerializer(typeof(T));
TextReader textReader = new StreamReader(path);
T entity = (T)deserializer.Deserialize(textReader);
textReader.Close();
return entity;
}
尽管这种方法可以解决问题,但我发现我的所有属性都必须是公共的,这有点烦人,有时我需要标记属性 [XmlAttribute|XmlElement| XmlIgnore] 并且它不处理字典。
我的问题是:有没有更好的方法在 c# 中序列化对象,一种更简单、更现代、更易于使用的方法?