2012-10-05 27 views
9

我正在使用Azure緩存預覽並需要使某些類可序列化。使類可序列化的缺點

是否有任何使類可序列化的缺點 - 如性能問題?

[Serializable] 
public class MyClass {} 

我發現了幾個相關的問題,但它們不是關於缺點。

  1. Are all .NET exceptions serializable?

  2. Drawbacks of marking a class as Serializable

預先感謝

+1

我遇到的唯一缺點是它可以防止一些混淆器混淆你的代碼。如果該類標記爲可序列化,則名稱將保持原樣。 – Rob

回答

8

沒有,有沒有內在的開銷只是在被標記爲[Serializable]。我唯一的問題是,BinaryFormatterNetDataContractSerializer是糟糕的序列化,和大多數其他序列化不感興趣,這個標誌(OK,我可能會有所偏差)

5

假設你正在談論使用成本Serializable屬性而不是實際的序列化過程,一個缺點是第三方通常會認爲該類被設計爲可序列化的。雖然這可能是這種情況,但如果你只是爲了它而將其標記爲可序列化的(並且如果第三方有可能與它進行交互的話),那麼你可能需要花時間確保該類是適合的以有效的方式序列化。因此,從這個角度來看,這更多的是資源平衡而不是技術平衡。

從技術的角度來看,正如Marc Gravell所說,只是使用屬性不會有任何開銷。