XmlInclude: список и массив

У меня есть объект, который имеет переменные какobjectи я хочу сериализовать его в XML.

Для этого я добавил несколькоXmlInclude атрибуты для управления всеми типами, которые могут быть использованы.

[Serializable]
[XmlInclude(typeof(short[]))]
[XmlInclude(typeof(ushort[]))]
[XmlInclude(typeof(int[]))]
[XmlInclude(typeof(uint[]))]
[XmlInclude(typeof(ulong[]))]
[XmlInclude(typeof(long[]))]
[XmlInclude(typeof(byte[]))]
[XmlInclude(typeof(decimal[]))]
[XmlInclude(typeof(float[]))]
[XmlInclude(typeof(double[]))]
[XmlInclude(typeof(string[]))]
[XmlInclude(typeof(List<short>))]
[XmlInclude(typeof(List<ushort>))]
[XmlInclude(typeof(List<int>))]
[XmlInclude(typeof(List<uint>))]
[XmlInclude(typeof(List<long>))]
[XmlInclude(typeof(List<ulong>))]
[XmlInclude(typeof(List<byte>))]
[XmlInclude(typeof(List<decimal>))]
[XmlInclude(typeof(List<float>))]
[XmlInclude(typeof(List<double>))]
[XmlInclude(typeof(List<string>))]
[XmlInclude(typeof(MyObject))]
[XmlInclude(typeof(TimeSpan))]
[XmlInclude(typeof(OtherObject))]
[XmlInclude(typeof(MySubObject1))]
[XmlInclude(typeof(MySubObject2))]
[XmlRoot(ElementName = "mc")]
public class MyClass: IComparable
{
    [XmlElement("fm")]
    public object FirstMember;

    [XmlElement("sm")]
    public object SecondMember;

    [XmlElement("tm")]
    public object ThirdMember;
}
Моя проблема в том, что объявления массивов и списков не сосуществуют.

И странно, что если атрибуты массива помещаются первыми, члены массива корректно сериализуются, а не списочные. И наоборот.

Пользовательские и производные классы работают нормально, ноList а такжеArray нет. Я могу найти пример только с классами, но я использую примитивные типы.

У кого-нибудь есть идея?

П.С .: Я знаю, что мой пост похож наэтот, но не имеет ответа с 2011 года.

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

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