将派生类序列化为XML
本文关键字:XML 序列化 派生 | 更新日期: 2023-09-27 17:51:20
我试图序列化一个派生类,并序列化派生的属性和基础的属性。目前,派生属性是序列化的,但基属性不是。我错过了什么?基类型和派生类型都标有[Serializable]。
String SaveBody<T>(String bodyFile, T body) where T : FreeBody
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (var xmlStream = new MemoryStream())
using (TextWriter fileStream = new StreamWriter(xmlStream))
{
serializer.Serialize(fileStream, body);
fileStream.Flush();
xmlStream.Seek(0, SeekOrigin.Begin);
String text = new StreamReader(xmlStream).ReadToEnd();
File.WriteAllText(bodyFile, text);
return text;
}
}
我做错了这道题。未被序列化的属性为null/空,因此序列化器没有输出它们。将这些属性初始化为默认值创建了我所期望的行为