Si algo hereda de una clase Serializable, ¿la clase hija todavía se puede serializar?Herencia serializable
Respuesta
Depende de lo que quiera decir ser serializable. Si se refiere al marcador CLI (es decir, el atributo [Serializable]
), este es no heredado (prueba a continuación). Debe marcar explícitamente cada clase derivada como [Serializable]
. Sin embargo, si se refiere a la interfaz ISerializable
, entonces sí: las implementaciones de interfaz se heredan, pero debe tener cuidado, por ejemplo, utilizando un método virtual
para que las clases derivadas puedan contribuir con sus datos a la serialización.
using System;
class Program
{
static void Main()
{
Console.WriteLine(typeof(Foo).IsSerializable); // shows True
Console.WriteLine(typeof(Bar).IsSerializable); // shows False
}
}
[Serializable]
class Foo {}
class Bar : Foo {}
Los atributos, por su naturaleza, no se heredan. Además, no se puede considerar que una clase hereda de un atributo. Ergo, los atributos no tienen nada que ver con la pregunta del OP. – NotMe
Lo siento, pero estás equivocado. Los atributos * do * se relacionan con la pregunta; el atributo [Serializable] es uno de los que el compilador maneja de manera diferente: usa esto para establecer el indicador "serializable" en la clase CLI (si comprueba el IL, realmente descarta el atributo en este punto). –
Igualmente, nunca he dicho nada sobre la clase que hereda de un atributo, aunque en realidad, dado que los atributos * son * clases y los atributos pueden heredarse uno del otro, una clase de atributo hereda mucho de un atributo ... –
- 1. C# serialización/Herencia
- 2. subclase de la clase Serializable padre que no serializable
- 3. ¿hay alguna diferencia entre [Serializable] y [Serializable()] en C#?
- 4. ¿Por qué una clase interna serializable no es serializable?
- 5. ¿Cuál es la diferencia entre scala @Serializable y Java Serializable?
- 6. ¿Por qué java.util.List no implementa Serializable?
- 7. Serializable y AnyVal
- 8. Android Parcelable y Serializable
- 9. ¿Se necesita un atributo serializable en la clase C# concreta?
- 10. ¿Qué es Serializable en Java?
- 11. ¿Por qué HttpServlet implementa Serializable?
- 12. ¿cómo funciona serializable en Java?
- 13. Cómo hacer simplejson clase serializable
- 14. objeto no es JSON serializable
- 15. ¿Funciona [Serializable] para clases heredadas?
- 16. ¿Por qué AtomicInteger implementa Serializable
- 17. linqpad y personalizado IPrincipal serializable
- 18. Serializable y DataContract (¿no frente?)
- 19. java.io.NotSerializableException incluso si implemento "Serializable"
- 20. Herencia y llamadas genéricas GetMethod(). GetReturnType()
- 21. Java objeto serialización y la herencia
- 22. Herencia virtual pura, herencia múltiple, y C4505
- 23. Necesitamos el atributo Serializable para enumeraciones
- 24. ¿Por qué debería un Comparador implementar Serializable?
- 25. Inconvenientes de marcar una clase como Serializable
- 26. Asignación a tipo Serializable en NHibernate fluido
- 27. Java Serializable, ObjectInputstream, E/S sin bloqueo
- 28. Cómo especificar una lista genérica Serializable
- 29. ¿Puedo usar DataContract y Serializable juntos?
- 30. Hibernate session.contains (Class clazz, Serializable id)
Además, esta pregunta es ambigua –