将类设置为Serializable的缺点

Win*_*Win 11 .net c# serialization azure

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

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

[Serializable]
public class MyClass {}
Run Code Online (Sandbox Code Playgroud)

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

  1. 所有.NET异常都是可序列化的吗?

  2. 将类标记为Serializable的缺点

预先感谢

Mar*_*ell 9

不,只是标记为没有固有的开销[Serializable].我唯一的问题是,BinaryFormatterNetDataContractSerializer是糟糕的序列化,和大多数其他序列化不感兴趣,这个标志(OK,我可能会有所偏差)


key*_*rdP 5

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

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