我有一个带有锯齿状数组的类。当我尝试序列化它时,我得到以下异常:
System.InvalidOperationException HResult = 0x80131509 Message =无法生成临时类(result = 1)。错误CS0030:无法将类型'string [] []'转换为'string []'错误CS0029:无法将类型'string []'隐式转换为'string [] []'
一个简单的程序来重现问题:
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);
}
}
}
}
和班级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; }
}