为什么我不能创建一个Serializable类?

Bra*_*118 11 c# asp.net serializable

我在我的视图状态中存储了一些对象,我想知道创建一个类是否有任何缺点Serializable

制作所有课程是不好的做法Serializable吗?

Sla*_*ppy 9

首先.避免使用viewstate.

通常序列化(文本)用于传输对象.

您应该避免将任何类标记为不是DTO(数据传输对象)或消息类的可序列化.我们这样做有几个原因.什么曾经以序列化格式提取你的类可能没有非DTO类的方法信息(在原始程序集中).其次,类可以引用资源(数据库连接,文件句柄等)不要序列化这些,因为反序列化不会重新建立资源连接和状态,除非明确设计,但仍然是一个坏主意.

总而言之:当你有上下文方法并存储数据供第三方使用时,请不要序列化.(就像使用方法的服务响应是一个坏主意).当类包含资源引用时,请不要序列化.尽可能保持可序列化对象不受方法影响.这可能需要稍微考虑一下服务类型模式.

序列化DTO和消息.

这更像是一种设计选择.