将类设置为Serializable的缺点

时间:2012-10-05 22:08:24

标签: c# .net serialization azure

我正在使用Azure缓存预览,需要创建一些Serializable类。

将类设置为可序列化是否有任何缺点 - 例如性能问题?

[Serializable]
public class MyClass {}

我发现很少有相关问题,但它们不是缺点。

  1. Are all .NET exceptions serializable?

  2. Drawbacks of marking a class as Serializable

  3. 提前感谢

2 个答案:

答案 0 :(得分:9)

不,仅仅标记为[Serializable]就没有内在的开销。我唯一的问题是BinaryFormatterNetDataContractSerializer是糟糕的序列化程序,大多数其他序列化程序对此标志不感兴趣(好吧,我可能有偏见)

答案 1 :(得分:5)

假设您在谈论使用Serializable属性而非实际序列化过程的成本,一个缺点是第三方通常会认为该类被设计为可序列化。虽然情况可能如此,如果您只是为了它而将其标记为可序列化(并且如果第三方可能与其进行交互),那么您可能希望花时间确保该类适合以有效的方式进行序列化。从这个角度来看,它更像是资源权衡,而不是技术权衡。

从技术角度来看,正如Marc Gravell所说,只使用该属性不会有任何开销。