Каков наилучший способ сериализации HashTable (или данных, которые лучше всего перемещаются через индексатор строк) с помощью SOAP / XML?
Допустим, у меня есть 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);
}
}
Есть предложения? Какова лучшая практика здесь?