Tengo un montón de diferentes clases de DTO. Se están serializando en una cadena XML en un punto y se pasan al lado del cliente de la aplicación web. Ahora cuando el cliente recupera una cadena XML, necesito deserializarla de nuevo a una instancia de la clase DTO que representa. El problema es que quiero que sea genérico y posiblemente una función que tome una cadena xml y escuche un objeto de un tipo. Algo así como un largo de estas líneas:Deserialización genérica de una cadena xml
public sometype? Deserialize (string xml)
{
//some code here
return objectFromXml;
}
EDITAR: ¡Ejemplo horrible! ¡Simplemente me contradiqué!
no puede hacer lo siguiente:
Person person = Deserialize(personXmlStringFromClient);
porque no sé que personXmlStringFromClient es una representación de la instancia de objeto Persona DTO.
No sé qué objeto serializado me es dado y ese parece ser mi problema aquí. He estado leyendo acerca de la reflexión y otras técnicas que implican pegar el tipo en el xml para que el deserializador sepa qué hacer con él. Parece que no puedo unir todo en una sola pieza de trabajo. Además, en la mayoría de los ejemplos, el autor sabe qué tipo habrá después de la deserialización. Cualquier sugerencia es bienvenida! Si necesito hacer algo especial con el proceso de serialización, por favor compártelo también.
¡Lo siento! Me confundí a mí mismo. No puedo usar tu función porque no sé qué es T. – Dimskiy
@Dimskiy: ¿Sabe qué T * podría * ser (es decir, una lista de tipos potenciales)? –
Si pudiera obtener el tipo como cadena, ¿cómo convertiría la cadena "Persona" en un tipo real? – Dimskiy