tbi*_*icr 6 c# xml deserialization
我有下一个xml:
<table-display-fields>
<field name="NAME/>
<field name="DESCRIPTION" />
</table-display-fields>
Run Code Online (Sandbox Code Playgroud)
我用下一个代码实现了这一点:
[XmlArray("table-display-fields")]
[XmlArrayItem("field")]
public TableDisplayField[] TableDisplayFields;
Run Code Online (Sandbox Code Playgroud)
然后我将新的xml元素添加到table-display-fields节点:
<table-display-fields>
<record-number-field name="ID" />
<field name="NAME/>
<field name="DESCRIPTION" />
</table-display-fields>
Run Code Online (Sandbox Code Playgroud)
然后添加下一个代码来deserealize record-number-field:
[XmlArray("table-display-fields")]
[XmlArrayItem("record-number-field")]
public TableDisplayField[] RecordTableDisplayFields;
[XmlArray("table-display-fields")]
[XmlArrayItem("field")]
public TableDisplayField[] TableDisplayFields;
Run Code Online (Sandbox Code Playgroud)
这不起作用.如何解除新的xml,并保存现有的属性路径?
您必须删除 XmlArrayItem() 属性。
[XmlArray("table-display-fields")]
public object[] TableDisplayItems;
Run Code Online (Sandbox Code Playgroud)
中的每个对象TableDisplayItems都是 afield或 a record-number-field。
当然,如果您record-number-field的阵列顶部只有一个,那么解决方案可能会好得多。是这样吗?