Serializable会妨碍性能吗?

sha*_*shi 2 c#

我最近更改了会话状态以使用SQL服务器,然后意识到并非所有实体都可序列化.

现在试图找出整个代码中正在进行会话的实体似乎是一个很大的痛苦,所以我在想为什么不将它们全部序列化?

这会有任何性能影响吗?为什么默认情况下类没有标记为Serializable?

Mar*_*ell 5

添加[Serializable]不会影响性能; 简单地说,大多数类都不需要是可序列化的,并且存储内部状态的能力并不总是有意义的 - 它只对"实体"或"DTO"对象才有意义.

有些事情要注意:确保事件不是序列化的; 然后标记[field: NonSerialized]- 否则您可能会生成比预期更多的数据; p

也; BinaryFormatter可以...相当庞大.如果你想要更小的数据,我会建议看(例如)protobuf网(100%免费),您可以通过钩ISerializable-它一般显著比更有效BinaryFormatter.如果您对更多细节感兴趣,请告诉我.