Ras*_*usW 5 .net c# xml xsd xmlserializer
我正在实施一个程序,该程序充当某些现有软件的客户端。该协议是使用XML
模式定义的,它包括多维数组。
.netXmlSerializer
无法处理这些 -这是一个已知问题。
有没有办法扩展XmlSerializer
以便我可以对此进行处理,或者是否有完整的(免费或商业的)替代品XmlSerializer
可以处理多维数组?
SharpSerializer
似乎没有创建模式定义的 XML,而是使用它自己的序列化格式。
我想我可以sgen.exe
用来生成序列化程序代码,然后手动编辑它以添加必要的处理,但我想避免这种情况。
如果您可以控制更改架构,则可以尝试使用锯齿状数组而不是多维数组。
string[][]
代替string[,]
或使用类似的东西List<List<T>>
您可以创建自己的自定义类来展平多维数组。
或者,在您的类上使用 XmlIgnore,将多维数组展平为标准数组(如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 */ }
}
Run Code Online (Sandbox Code Playgroud)