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

.NET:公开声明是否要求类可序列化?,.net,serialization,.net,Serialization,公开声明是否要求类可序列化?我已经阅读了一些代码,其中标记为[Serializable]的所有类也被声明为公共类。我找不到说明这一点的正式文档。不,对可序列化的没有这样的要求。在公共类上看到可序列化并不奇怪,因为要持久化到流的数据很可能与其他人共享,因此会促使选择公共类。不,对可序列化没有这样的要求。在公共类上看到可序列化的数据并不奇怪,因为要持久化到流中的数据很可能与其他人共享,因此会促使选择公共类。我不太了解.net。但是私有嵌套类呢 如果(公共)外部类是可序列化的,那么您可能还需要序列化任

公开声明是否要求类可序列化?我已经阅读了一些代码,其中标记为
[Serializable]
的所有类也被声明为公共类。我找不到说明这一点的正式文档。

不,对可序列化的
没有这样的要求。在公共类上看到
可序列化
并不奇怪,因为要持久化到流的数据很可能与其他人共享,因此会促使选择公共类。

不,对
可序列化
没有这样的要求。在公共类上看到可序列化的数据并不奇怪,因为要持久化到流中的数据很可能与其他人共享,因此会促使选择公共类。

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


如果(公共)外部类是可序列化的,那么您可能还需要序列化任何内部类。

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


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

不一定是真的,可能您有一个对象具有表示另一个对象状态的内部类并且是可序列化的,这也非常有效

不一定是真的,也许您有一个对象,它有一个表示另一个对象状态的内部类,并且是可序列化的,这也是非常有效的

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


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

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


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

我认为通常大多数类都是公共的。丹尼尔,不一定是这样,这当然取决于解决方案的规划和设计。我认为大体上大多数课程都是公开的。丹尼尔,这不一定取决于解决方案的规划和设计。