Как ни странно, вы не можете решить это красиво.Ознакомьтесь с разделом десериализации в этой статье .Особенно там, где говорится:
Лишь несколько ошибок приводят к исключениям в процессе десериализации.Наиболее распространенные из них:
• Имя корневого элемента или его пространства имен не соответствует ожидаемому имени.
...
Обходное решение, которое я использую для этого, заключается в установкепервое пространство имен, попробуйте / поймайте операцию десериализации, и если она не удалась из-за пространства имен, я пробую ее со следующим.Только если все параметры пространства имен потерпят неудачу, я выдам ошибку.
С очень строгой точки зрения вы можете утверждать, что это поведение является правильным, поскольку тип, который вы десериализуете, должен представлять конкретную схему / пространство имен, а затем это нене имеет смысла, что он также должен иметь возможность читать данные из другой схемы / пространства имен.На практике это очень раздражает.Расширение файла редко изменяется при изменении версий, поэтому единственный способ определить, является ли файл .gpx v0 или v1, - это прочитать содержимое xml, но xmldeserializer не сможет, если вы заранее не укажете, какая версия будет.