序列化:无法将字符串[] []转换为字符串[]

问题描述 投票:2回答:1

我有一个带有锯齿状数组的类。当我尝试序列化它时,我得到以下异常:

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; }
    }
}

如何序列化我的锯齿状阵列?

c# arrays xmlserializer
1个回答
2
投票

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

    [Serializable]
    public class Class1
    {
        [XmlElement(Type = typeof(string[][]))]
        public string[][] MyJaggedArray { get; set; }
    }
© www.soinside.com 2019 - 2024. All rights reserved.