使用 SOAP/XML 序列化 HashTable(或最好通过字符串索引器导航的数据)的最佳方法是什么?
假设我有一个Foo
具有属性的Bar[] Bars
。一个Bar
对象有一个键和一个值。默认情况下,这会序列化为以下 XML:
<Foo>
<Bars>
<Bar key="key0" value="value0"/>
...
</Bars>
</Foo>
对于 JSON,这将序列化为:
{"Foo":["Bars":[{"Key":"key0","Value":"key1} ... ]}]}
我真正想要的是这个序列化以更好地反映底层关系。例如,
<Foo>
<Bars>
<Key0 value="value0"/>
<Key1 value="value1"/>
...
</Bars>
</Foo>
我意识到以这种方式序列化到 SOAP 存在一些挑战,但是提供更好地反映这一点的模式的最佳方法是什么?
我已经尝试创建一个 BarsCollection 对象并在其上定义自定义序列化,但它似乎并没有真正调用该对象的序列化。例如
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) {
foreach (Bar bar in Bars){
info.AddValue(bar.Key. bar);
}
}
有什么建议么?这里的最佳做法是什么?