因为您可以将任何文档转换为字节数组并将其保存到磁盘,然后将文件重建为其原始形式(只要您有其文件名等的元数据)。
为什么必须用 [Serializable]
等标记一个类?这是否只是相同的想法,“元数据”类型信息,所以当您将对象转换为它的类时,事物会被正确映射?
最佳答案
二进制序列化非常强大,它可以在不运行构造函数的情况下创建类的实例,并且可以在您声明为私有(private)的类中设置字段。常规代码当然不能这样做。通过应用 [Serializable] 属性,您可以明确允许它扰乱您的隐私部分。并且您隐式地只将该权限授予 BinaryFormatter 类。
XML 序列化不需要这种好吧,它只序列化公共(public)成员。
DataContractSerializer 也可以序列化私有(private)成员。因此,它需要再次明确同意,现在使用 [DataContract] 属性。
关于c# - 为什么必须用属性 [serializable] 标记一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595104/