C# 序列化:无法将类型字符串[]转换为字符串[]

C# 序列化:无法将类型字符串[]转换为字符串[],c#,arrays,xmlserializer,C#,Arrays,Xmlserializer,我有一个具有锯齿状数组的类。当我尝试序列化它时,会出现以下异常: System.InvalidOperationException HResult=0x80131509消息=无法 生成一个临时类(result=1)。错误CS0030:无法转换 将“string[][]”键入“string[]”错误CS0029:无法隐式 将类型“字符串[]”转换为“字符串[]” 重现问题的简单程序: using System.IO; using System.Xml.Serialization; namespa

我有一个具有锯齿状数组的类。当我尝试序列化它时,会出现以下异常:

System.InvalidOperationException HResult=0x80131509消息=无法 生成一个临时类(result=1)。错误CS0030:无法转换 将“string[][]”键入“string[]”错误CS0029:无法隐式 将类型“字符串[]”转换为“字符串[]”

重现问题的简单程序:

using System.IO;
using System.Xml.Serialization;

namespace JaggedArraySerialization
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(Class1));
            var class1 = new Class1();
            using (TextWriter stream = new StreamWriter(@"C:\temp\test.xml"))
            { 
                xmlSerializer.Serialize(stream, class1);
            }
        }
    }
}
一班

using System;
using System.Xml.Serialization;

namespace JaggedArraySerialization
{
    [Serializable]
    public class Class1
    {
        [XmlElement]
        public string[][] MyJaggedArray { get; set; }
    }
}

如何序列化锯齿数组?

您可以在属性
MyJaggedArray
上指定类型,如下所示:

    [Serializable]
    public class Class1
    {
        [XmlElement(Type = typeof(string[][]))]
        public string[][] MyJaggedArray { get; set; }
    }