我确实有一些实现自己的序列化/反序列化的类,但是我在不实现system.runtime.serialization.ISerializable的情况下完成了所有这些工作。所以我的问题是使用system.runtime.serialization.ISerializable的好处到底是什么?
在哪种示例情况下,我们需要实现system.runtime.serialization.ISerializable?
最佳答案
您的序列化未与标准.net序列化机制集成。您不能将其与BinaryFormatter
一起使用。 ISerializable
使得a)控制序列化b)将其集成到二进制序列化的标准机制中成为可能。
您决定编写自己的序列化也很奇怪。编写有效的生产质量序列化非常昂贵,尤其是当.net中有二进制和XML序列化准备好使用,以及Protobuf和Thrift等一些不错的第三方软件时。
实际上,在MSDN上的ISerializable page中给出了一个很好的例子。
当您想挂接到二进制序列化时,一个现实的例子是在序列化DateTime
时它会释放时区。 (至少在.net 2.0中)