2012-10-05 21 views
9

Estoy usando la vista previa de Azure Cache y necesito hacer algunas clases Serializable.Desventaja de hacer que la clase sea Serializable

¿Hay alguna desventaja de hacer que la clase sea Serializable, como el problema de rendimiento?

[Serializable] 
public class MyClass {} 

Encontré algunas preguntas relacionadas, pero no se trata de desventajas.

  1. Are all .NET exceptions serializable?

  2. Drawbacks of marking a class as Serializable

Gracias de antemano

+1

La única desventaja que he encontrado es que puede evitar que algunos ofuscadores ofusquen su código. Si la clase está marcada como Serializable, los nombres se dejarán como están. – Rob

Respuesta

8

No, no hay ninguna sobrecarga intrínseca simplemente en ser marcado como [Serializable]. El único problema que tengo es que BinaryFormatter y NetDataContractSerializer son pésimos serializadores, y la mayoría de otros serializadores no están interesados ​​en esta bandera (ok, puedo estar sesgada)

5

Suponiendo que estamos hablando del coste del uso de la Serializable atributo en lugar del proceso de serialización real, un inconveniente sería que un tercero normalmente supondría que la clase está diseñada para ser serializable. Si bien este puede ser el caso, si solo lo está marcando como serializable (y si hay una posibilidad de que un tercero pueda interactuar con él), entonces probablemente quiera pasar el tiempo asegurándose de que la clase sea adecuada. ser serializado de una manera eficiente. Entonces, es más una compensación de recursos que técnica, desde ese punto de vista.

Desde un punto de vista técnico, como dijo Marc Gravell, simplemente usar el atributo no tendrá ningún gasto adicional.

Cuestiones relacionadas