【发布时间】:2019-05-11 19:42:25
【问题描述】:
我正在尝试将一个类保存到带有序列化的文件中,它适用于所有属性,但无法序列化嵌套类。
假设我的类代表一个具有名称、描述、...的任务,它可以由由任务列表表示的子任务组成
我尝试在我的列表之前写 [Serializable],就像在此处解释:Serialize Nested Classes in c#?
但我收到此错误:“属性 'Serializable' 在此声明类型上无效。它仅在声明上有效。”
[Serializable()]
public class t_Task
{
private string nom;
private string description;
[Serializable]
List<t_Task> subTask;
}
如何让列表中的所有类也序列化?
编辑:我正在使用此处找到的方法进行序列化:http://blog.danskingdom.com/saving-and-loading-a-c-objects-data-to-an-xml-json-or-binary-file/
public static void WriteToBinaryFile<T>(string filePath, T objectToWrite, bool append = false)
{
using (Stream stream = File.Open(filePath, append ? FileMode.Append : FileMode.Create))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
binaryFormatter.Serialize(stream, objectToWrite);
}
}
然后我用一个接近这个的方法来调用它
public void Save()
{
GesionBinaryFileIO.WriteToBinaryFile<t_Task>(PathToFile, this);
}
【问题讨论】:
标签: c# list class serialization