微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – .net XmlSerializer和多维数组

我正在实施一个程序,作为一些现有软件的客户端.该协议使用 XML模式定义,它包括多维数组.

.net XmlSerializer无法处理 – 这是一个已知问题.

有没有办法扩展XmlSerializer所以我可以为此实现处理,或者是否有可以处理多维数组的XmlSerializer的完整(免费或商业)替代品?

SharpSerializer似乎没有创建模式定义的XML,而是使用它自己的序列化格式.

我想我可以使用sgen.exe生成序列化程序代码,然后手动编辑然后添加必要的处理,但我想避免这种情况.

解决方法

如果您可以控制更改架构,则可以尝试使用锯齿状数组而不是多维数组.

string [] []而不是string [,]

或使用类似List< List< T>>的内容

您可以创建自己的自定义类来展平多维数组.

或者,在您的类上使用XmlIgnore,将多维数组展平为标准数组(如建议的here by Marc Gravell)

[XmlIgnore]
public int[,] Data { get; set; }

[XmlElement("Data"),browsable(false)]
[Editorbrowsable(EditorbrowsableState.Never)]
public int[] DataDto
{
    get { /* flatten from Data */ }
    set { /* expand into Data */ }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐