Используйте несколько пространств имен при десериализации с .NET XmlSerializer

я пытаюсь десериализовать XML с двумя пространствами имен, как это


    

а иногда и более старая версия


    

Мой класс Records.cs имеет

[XmlRoot(ElementName = "records", Namespace = "http://www.foo.com/xml/records/1.1")]
public class Records
{
    [System.Xml.Serialization.XmlElementAttribute("record")]
    public List Records { get; set; }
}

Я хочу, чтобы список записей мог содержать запись версии 1.0 или версии 1.1

/// 
[XmlRoot(IsNullable = false, ElementName = "record", Namespace = "http://www.foo.com/xml/record/1.0")]
public partial class Record
{


    /// 

    public Record()
    {

    }
}

/// 
[XmlRoot(IsNullable = false, ElementName = "record", Namespace = "http://www.foo.com/xml/record/1.1")]
public partial class Record11 : Record
{
    /// 
    public Record11()
    {
    }
}

поэтому я предположил, что подклассы записи будут работать.

Я получаю исключение Reflection при десериализации, и оно указывает на атрибут XmlChoiceIdentifier. Однако это похоже на перечисления.

Кто-нибудь знает, как сделать то, что я хочу сделать (поддерживает десериализацию нескольких версий одной и той же схемы?)

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос