序列化“un serializable”对象

时间:2013-04-11 09:44:40

标签: c# .net

我有一些类型,我真的需要序列化这些类型的实例,但它们没有标记为可序列化,我无法修改它们。所以我正在寻找一种深度转储内存保存。我尝试过BinaryFormatter等,但它们也需要serializable属性......

有什么想法吗?没有为我的具体案例找到很多东西......:'(

3 个答案:

答案 0 :(得分:4)

执行此操作的最合理方法是创建一个可序列化的新对象,该对象包含不可序列化对象的所有属性。然后添加函数以从不可序列化的对象构造对象的实例,反之亦然。

答案 1 :(得分:1)

[Serializable]不是序列化的必需品,对于二进制序列化,不需要这样做。

答案 2 :(得分:0)

考虑使用protobuf-net:Fast, portable, binary serialization for .NET

代码示例:

// write to a file
Serializer.Serialize(outputStream, person);

...

// read from a file
var person = Serializer.Deserialize<Person>(inputStream);