我在我的viewstate存储一些对象,我想知道是否有任何缺点,使一个类Serializable?
使所有类可序列化是不好的做法吗?
解决方法
首先.避免观看状态.
一般来说,序列化(textual)用于传输对象.
您应该避免将任何类标记为不是DTO(数据传输对象)或消息类的可序列化.我们这样做有几个原因.以串行格式拾取您的类的内容可能没有非DTO类的方法信息(在原始程序集中).其次,一个类可以引用一个资源(DB连接,文件句柄等)不要序列化这些,因为除序列化不重新建立资源连接和状态,除非明确设计,但仍然是一个坏主意.
总结如下:当您使用上下文方法并存储要使用的第三方的数据时,请勿序列化. (像使用方法的服务响应是一个坏主意).并且当类包含资源引用时不要序列化.尽可能保持可序列化的对象清除方法.这可能需要重新考虑服务类型模式.
做序列化DTO和消息.
这更多的是设计选择.