Creé una biblioteca de clases de contenedor API para consumir una API de reposo de un tercero.C# deserialización de xml con múltiples espacios de nombres posibles
Todo estaba funcionando hasta que actualizaron recientemente la API en la última versión de su producto y agregaron un espacio de nombre al elemento raíz, ahora mi código de deserialización está fallando.
Un ejemplo de una de mis clases:
[Serializable]
[XmlRootAttribute(ElementName = "exit_survey_list")]
public class SupportExitSurveyCollection : ApiResult { .... }
Si establece la propiedad de espacio de nombres en el XmlRootAttribute al nuevo espacio de nombres de ser devuelto, entonces funciona correctamente de nuevo.
Pero necesito admitir ambas versiones de la API (espacio de nombres y no) porque no puedo estar seguro de qué versión de la API estará disponible.
Me gustaría hacerlo funcionar sin duplicar clases para diferentes versiones, pero no estoy seguro de si es posible.
Gracias por cualquier aportación/consejo.
Gracias por las ideas, fui a la ruta de procesamiento previo y eliminé todas las declaraciones del espacio de nombres. Me imagino que esto le permitirá seguir trabajando en el futuro si decide cambiar el espacio de nombres nuevamente. – Adam