看来我可以序列化没有该接口(interface)的类,所以我不清楚它的用途。
最佳答案
ISerializable
用于提供自定义二进制序列化,通常用于BinaryFormatter
(并可能用于远程处理)。没有它,它将使用以下字段:
[NonSerialized]
),则为通过实现
ISerializable
,您可以提供自己的二进制序列化机制。请注意,它的xml等效项是IXmlSerializable
,由XmlSerializer
等使用。出于DTO的目的,应避免使用
BinaryFormatter
-诸如xml(通过XmlSerializer
或DataContractSerializer
)或json之类的东西是不错的,跨平台格式(如 Protocol Buffer )也是如此。为了完整起见,protobuf-net确实包括
ISerializable
的钩子(Hook)(允许您使用可移植的二进制格式而无需编写大量代码),但是BinaryFormatter
绝对不是您的首选。