Actualmente estoy teniendo un problema realmente extraño y no puedo encontrar la manera de resolverlo.Problema de rendimiento de XmlSerializer al especificar XmlRootAttribute
Tengo un tipo complejo bastante que estoy intentando serializar utilizando la clase XmlSerializer. Esto realmente funciona bien y el tipo serializa correctamente, pero parece tomar un muy largo tiempo al hacerlo; alrededor de 5 segundos dependiendo de los datos en el objeto.
Después de un poco de creación de perfiles, reduje el problema - extrañamente - a la especificación de un XmlRootAttribute cuando llamo a XmlSerializer.Serialize. Hago esto para cambiar el nombre de una colección que se está serializando desde ArrayOf a algo un poco más significativo. Una vez que elimine el parámetro, ¡la operación es casi instantánea!
¡Cualquier idea o sugerencia sería excelente ya que estoy totalmente perplejo con esta!
De acuerdo, parece que el problema es que ¡El ensamblaje de serialización se genera para cada instancia de serializador si usted especifica cualquier cosa que no sea un parámetro de tipo para el serializador! Por eso, supongo, estoy viendo un rendimiento tan terrible. ¿Alguien sabe alguna razón por la cual XmlSerializer predeterminado haría esto? No entiendo por qué simplemente especificar el nombre del nodo raíz significaría que la memoria caché no podría ser utilizada? – Dougc