【发布时间】:2015-01-14 16:29:47
【问题描述】:
这是我当前的序列化/反序列化代码
// SERIALIZE
using (var file = File.Create(@"..\..\SavedPCInfo.bin"))
{
Serializer.Serialize(file, pcs);
}
//DESERIALIZE
if (File.Exists(FileName))
{
using (var file = File.OpenRead(@"..\..\SavedPCInfo.bin"))
{
pcs = Serializer.Deserialize<List<PC>>(file);
}
}
其中pcs 是PC 对象的列表。截至目前,我在反序列化时遇到错误:
没有找到适用于 PC 的无参数构造函数
我不知道为什么它需要一个无参数的构造函数来进行反序列化,但我只是想让我的反序列化工作。关于如何实现的任何想法?我似乎在这里做错了什么。
【问题讨论】:
-
我会考虑序列化数组而不是自定义集合类型,例如 List。你需要序列化数据,而不是类型。
-
很抱歉,我看不出有什么不同。我更喜欢列表,因为在其项目上执行迭代任务很容易。除非这里面有隐患,否则我可能会重新考虑。
标签: c# serialization protobuf-net