2010-08-05 64 views
0

SubSonic.Core程序集(3.0.0.3)中的类“SubSonic.Repository.SubSonicRepository”没有被标记为可序列化的原因吗?或者知道一个解决方法来序列化亚音速生成的类。使用亚音速生成对象的序列化

我添加了一个亚音速生成的对象到viewstate中,并得到一个错误,说对象没有标记为Serializable。所以我创建了一个扩展(使用部分类)到我生成的对象中,我认为这足够了,但现在抱怨SubSonic程序集中的上述类需要标记为Serializable。

回答

1

当一个类不可序列化(以及来自同一命名空间的其他类)时,通常有一个很好的理由。

由于很好的理由,存储库可能包含(或管理)与Db的连接,并且连接不可序列化。因为在反序列化的情况下,建立另一个连接会很复杂(也可能不安全)。无论如何你都无法获得相同的连接。

+0

感谢Henk,我不认为基类可能包含这样的细节。你是对的,虽然这是可能的,当然可能是在视图状态中添加敏感信息的问题。 我想这是SubSonic不支持POCO成为一个问题? – DaveHogan 2010-08-05 13:36:21

+0

SubSonic支持POCO - 只需使用SimpleRepository。顺便说一句。我建议使用一些特殊的视图模型类来存储viewstate中的实体,因为1:n,1:1关系是懒惰加载的。 – saintedlama 2010-08-06 06:17:49