我正在尝试找出在我的程序中处理序列化的最佳方法。
我想序列化私有字段(因此XML序列化程序是不可选的) 我想序列化像Bindinglist这样的泛型类型(SoapSerializer是没有选项的) 我还想提供某种程度的支持,以便能够从我的程序的早期版本反序列化对象。
所以我认为剩下的就是BinarySerializer,并实现ISerializable接口以应对前向兼容性。
这是对的吗?
注意: 我必须说我找到了这个项目。 然而,该项目似乎已经死了,我无法让它工作(文件丢失错误) http://sourceforge.net/project/showfiles.php?group_id=196509
答案 0 :(得分:1)
使用BinaryFormatter
,您可以使用[OptionalField]
,但这仍然是very brittle。
protobuf-net怎么样?是否所有这些,并没有与BinaryFormatter相关的版本控制问题。由于它基于Google的“协议缓冲区”格式,因此设计是版本容忍和可扩展的(披露:我是作者,所以我可能有偏见)。
或者,DataContractSerializer
支持字段序列化;只需对您的字段而不是属性设置[DataMember]
(需要.NET 3.0)。
答案 1 :(得分:0)
是的,您需要实现ISerializable。
关键点如下