utilice una sobreescritos programacion para palabra objeto new metodos instancia crear and c# serialization

sobreescritos - utilice la palabra new para crear una instancia de objeto c#



Si la clase Base está marcada Serializable ¿están todas las clases secundarias marcadas también? (2)

Tengo toda una lista de clases de entidades que necesito para hacer Serializable (debido al almacenamiento del estado de la sesión en SQL, pero esa es otra historia).

He agregado el atributo [Serializable] y todo parece estar bien.

Todas mis clases de entidades se extienden desde la misma clase base. Si marcó la clase base como Serializable, ¿significa esto que todos los niños están marcados como Serializables también?

Gracias


No, cada uno tendrá que marcarse como [Serializable] específicamente.

Además, si tiene la intención de serializar un objeto a XML que es de tipo derivado, como si fuera el tipo base, también necesitará un atributo [XmlInclude].

P.EJ:

[Serializable] public class BaseClass : ParentClass { } [Serializable] [XmlInclude(typeof(BaseClass))] public class ParentClass { }

(La serialización binaria, como la que se usa para las sesiones, no necesita esto)


No, el atributo no es heredado.

Cuando amplías la clase, es posible agregar características que pueden no ser serializables por naturaleza, por lo tanto, .NET Framework no puede suponer para ti que todo lo que amplía la clase base serializable también es serializable.

Es por eso que debe indicar explícitamente el atributo [Serializable] en cada clase individualmente.