2010-06-10 22 views

Respuesta

2

Sí, es posible.

Los datos XML/CSV/JSON serializados deben contener identificadores para permitir que el deserializador sepa qué tipos de objetos crear, ya que esto no se puede conocer de antemano. Para que el deserializador pueda construir nuevas instancias de objetos, generalmente se emplea el patrón de diseño FactoryMethod.

La deserialización es más difícil que la serialización.

1

No de ninguna manera. Tendría que escribir lógica para analizar los datos y decidir qué tipo se asemeja más a su formato.

1

Comúnmente sí. Pero depende de qué serialización usas. Los datos serializados deben contener metadatos sobre los tipos de objetos serializados. Por ejemplo, la serialización xml (System.Xml.Serialization) no es compatible con este escenario.

2

Depende de la serialización.

El BinarySerializer inserta información de tipo en su flujo de salida, por lo que lo que usted describe funcionaría perfectamente. Obtienes un objeto e incluso puedes hacer una reflexión sobre él y luego lanzarlo al tipo correcto.

La serialización XML no funciona así, por lo que el XmlSerializer exige un tipo en su constructor.

Es mejor que esté en un escenario donde los datos pueden ser de un número limitado de tipos, todos los cuales heredan de un tipo base. Luego puede dar el tipo de base (que está decorado con los atributos de tipo conocidos para que sepa todo sobre todos los otros tipos que podría ser) y luego deserializar los datos al tipo base estándar, luego inspeccionarlos.

CSV y JSON son aún más difíciles, ya que no hay una gran cantidad de compatibilidad de serialización para ellos al horno en el marco.

Cuestiones relacionadas