Uso un XmlSerializer
para serializar/deserializar algunos objetos. El problema es el rendimiento. Al crear perfiles, utilizando el XmlSerializer
, nuestra aplicación tardará 2 segundos más en comenzar. Almacenamos en caché nuestro XmlSerializer y lo reutilizamos. No podemos usar sgen.exe porque estamos creando el XmlSerializer con XmlAttributeOverrides
.Mejore el rendimiento de XmlSerializer
Intento utilizar una alternativa de serialización como Json.Net y, al principio, funciona muy bien. El problema es que tenemos que ser compatibles con versiones anteriores, por lo que todos los xml ya generados deben analizarse correctamente. Además, la salida de serialización del objeto debe ser Xml.
En resumen:
- recibo de datos XML serializado por un XmlSerializer.
- Necesito deserializar los datos Xml y convertirlos en un objeto.
- necesito para serializar objetos a XML (lo ideal es un formato XML como el que un XmlSerializer habría hecho)
Sus datos XML contienen la etiqueta de apertura '' y la etiqueta de cierre ' DatastoreHistory>'. Supongo que es un error de tipeo. Además, en su pregunta usted define el formato de los datos de entrada, pero no es claro define el formato de la salida JSON. Exactamente como puede representar la misma información en diferentes formatos XML, puede producir diferentes datos JSON con el conjunto de información equivalente, pero en diferentes formatos. Creo que deberías definir más claro el formato de los datos de salida. –
Oleg
Sería bueno si también borra la restricción "No puedo usar un XmlSerializer". Si la razón es solo el rendimiento, existen muchas maneras de mejorar el rendimiento, utilizando sgen.exe o implementando la interfaz 'ISerializable'. Lo que no está claro en la pregunta: por qué tiene un formato de entrada tan extraño si los datos. ¿Tienes un archivo XML largo o tienes muchos de esos archivos? Normalmente uno tiene la información original en la base de datos. Entonces, ¿por qué necesita una entrada XML tan extraña en lugar de acceder a los datos * originales *? – Oleg
Actualizo mi pregunta para representar más por el problema – Melursus