C# XML Сериализация: упорядочение элементов при использовании наследования - PullRequest
0 голосов
/ 27 апреля 2020

Можно ли как-нибудь упорядочить элементы при использовании наследования:

Мой код выглядит следующим образом:

   public class Program
{
    static void Main(string[] args)
    {
        string filename = @"C:\temp\abc.xml";

        RootElement root = new RootElement() { B = new B() { Value = "3", Value1 = "1", Value2 = "2" } };
        XmlSerializer xmlSerializer = new XmlSerializer(root.GetType());
        if (File.Exists(filename))
            File.Delete(filename);
        TextWriter tw = new StreamWriter(filename);
        xmlSerializer.Serialize(tw, root);
        tw.Close();


    }
    public class RootElement
    {
        [XmlElement(elementName: "b")]
        public B B { get; set; }

    }
    public abstract class A
    {
        [XmlElement(elementName: "value", Order = 3)]
        public string Value { get; set; }
    }
    public class B : A
    {
        [XmlElement(elementName: "value1", Order = 1)]
        public string Value1 { get; set; }
        [XmlElement(elementName: "value2", Order = 2)]
        public string Value2 { get; set; }
    }
}

И мой XML Вывод:

 <?xml version="1.0" encoding="utf-8"?>
<RootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <b>
    <value>3</value>
    <value1>1</value1>
    <value2>2</value2>
  </b>
</RootElement>

Есть ли какое-то решение для этого без помещения каждого элемента в класс B? по-видимому, использование свойства «Заказ» не работает ..: S

thx

...