.NET:公共声明是否要求类可序列化?

时间:2009-06-10 12:38:31

标签: .net serialization

公共声明是否要求类可序列化?我一直在浏览一些标记为[Serializable]的所有类都被公开的代码。我找不到正式文件说明这一点。

4 个答案:

答案 0 :(得分:3)

不,Serializable没有这样的要求。您在公共课上看到Serializable并不奇怪,因为将持续存储到流中的数据很可能与其他人共享,因此激励公共类的选择。

答案 1 :(得分:0)

我不太了解.net。但是私有嵌套类呢?

如果(公共)外部类是可序列化的,那么你可能也希望序列化任何内部类。

答案 2 :(得分:0)

并非总是如此,也许你有一个对象有一个内部类,表示另一个对象的状态,并且是Serializable,这也很有效

答案 3 :(得分:0)

取决于序列化。 AFAIK,二进制序列化(即 - [Serializable])不需要公共成员访问,它只是做一些伏都教来获取类的内存中快照。

XmlSerialization(和JsonSerialization等)通常要求类是public,带有defualt无参数构造函数,并自动序列化所有公共属性或字段。