Pregunta

Después de luchar con un montón de excepciones no capturadas al intentar serializar mis clases y subclases, por fin he entendido lo que mi problema había sido: [Serializable] no se hereda por las subclases cuando se aplica a una clase base. Todavía estoy muy difusa sobre C # Atributos en general, pero entiendo que al crear un atributo personalizado, el programador es capaz de habilitar la herencia automática del atributo.

Hay alguna forma de anular la herencia de [Serializable]? ¿Hay alguna razón por la que no se ha hecho desde el principio y / o sería una mala idea hacer esto en primer lugar? Me gustaría que todas las subclases de dicha clase base sea serializable, por lo que sólo parece poco elegante a tener que añadir el atributo a cualquier nuevo subclases que hago.

Gracias!

¿Fue útil?

Solución

No hay absolutamente una razón bien que no se hizo en el primer lugar -. Sólo porque una clase base es serializable no significa que una clase derivada, naturalmente, es

Heck, object es serializable - si serializabilidad fueron heredados, eso significaría que todas las clases de .NET sería serializable:)

No se puede "anular" que, o bien - se tiene que especificar en cada clase. Creo que es una cosa buena, en realidad - cuando se agrega el atributo, se debe realizar una comprobación mentales en la clase y comprobar que realmente no tiene sentido para serializarlo

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top