2010-10-23 37 views
2

我最近更改了會話狀態以使用SQL服務器,然後意識到並非所有的實體都是可序列化的。Serializable是否妨礙性能?

現在試圖找出哪些實體正在整個代碼中進行會話似乎是一個很大的痛苦,所以我想爲什麼不讓它們都可序列化?

這會有什麼表現打擊?爲什麼默認類沒有標記爲Serializable?

回答

5

添加[Serializable]不影響性能;簡單地說大多數類不需要需要是可序列化的,並且存儲內部狀態的能力並不總是有意義的 - 它對於「實體」或「DTO」對象只有真正有意義。

有些事情要注意:確保事件沒有序列化;然後[field: NonSerialized] - 否則您的數據可能會比預期增加更多; p

另外; BinaryFormatter可以...而是大量。如果你想要更小的數據,我會建議看看(例如)protobuf-net(100%免費),你可以通過ISerializable掛鉤 - 通常顯着BinaryFormatter更有效。如果您對更多細節感興趣,請告訴我。

相關問題