2010-08-05 21 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