加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .net XmlSerializer和多维数组

发布时间:2020-12-15 22:15:36 所属栏目:百科 来源:网络整理
导读:我正在实施一个程序,作为一些现有软件的客户端.该协议使用 XML模式定义,它包括多维数组. .net XmlSerializer无法处理 – 这是一个已知问题. 有没有办法扩展XmlSerializer所以我可以为此实现处理,或者是否有可以处理多维数组的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 */ }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读