Según lo que sé, SerializableAttribute no proporciona comprobaciones de tiempo de compilación, ya que todo se hace en tiempo de ejecución. Si ese es el caso, ¿por qué es necesario que las clases se marquen como serializables?Por qué se requiere un atributo serializable para serializar un objeto
¿No pudo el serializador simplemente intentar serializar un objeto y luego fallar? ¿No es eso lo que hace ahora? Cuando algo está marcado, lo intenta y falla. ¿No sería mejor si tuvieras que marcar las cosas como no serializables en lugar de serializables? De esa forma, ¿no tendrías el problema de que las bibliotecas no marcan las cosas como serializables?
posible duplicado de [¿Por qué tiene que marcar una clase con el atributo \ [serializable \]?] (Http://stackoverflow.com/ questions/2595104/why-do-you-have-to-mark-a-class-with-the-attribute-serializable) – nawfal
Puede intentar agregar automáticamente los atributos para todas sus clases usando [postesfón] (https: // www.postsharp.net/). Un uso similar se muestra en esta pregunta: http://stackoverflow.com/questions/7851365/how-to-inject-an-attribute-using-a-postsharp-attribute –