Estoy escribiendo una aplicación de servicio de Windows que necesita serializar y deserializar documentos XML repetidamente durante su ejecución. Como necesito serializar y deserializar tipos genéricos que no se conocen durante el tiempo de compilación (no sé a priori cuántos tipos necesito serializar/deserializar) me gustaría saber si es una buena idea mantener un caché de los objetos de DataContractSerializer que instalé para serializar y deserializar los objetos.¿Es una buena idea almacenar en caché las instancias de DataContractSerializer?
Estoy haciendo esta pregunta porque sé que es una buena idea almacenar en caché las instancias de la clase XmlSerializer ya que crean un ensamblaje dinámico en la memoria debajo del capó y los ensamblajes creados dinámicamente en la memoria no son basura.
He leído que el DataContractSerializer se basa en la generación de código ligero, pero no soy habitual con los detalles. Es por eso que estoy haciendo esta pregunta. ¿Debo entender si instalo las instancias de DataContractSerializer según lo necesitado que me llevaría a una pérdida de memoria como lo haría el XmlSerializer?
He elegido usar el DataContractSerializer en lugar del XmlSerializer para poder serializar las propiedades internas.
(respondió al comentario) –