Сериализация веб-сервиса - PullRequest
1 голос
/ 18 января 2011

В настоящее время я настраиваю общий веб-сервис, который принимает учетные данные, среду и пытается войти в систему. Он также возвращает коллекцию с возвращаемыми значениями, которые важны для конкретных сред.

Проблема в том, что я хочу вернуть часть графа объектов в узле returnvalues.

Поскольку возвращаемые значения Dictionairy<string, object>, он не имеет ни малейшего представления о том, как сериализовать граф объектов.

Так что я подумал, что я сериализирую это в MemoryStream, загружаю это в XmlDocument и затем сериализую это.

Как бы это ни было так:

<returnvalues>
 <returnvalue>
  <key>defendant</key> 
  <value xsi:type="xsd:string">
   <?xml version="1.0"?>
    <something xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    </something>
  </value> 
 </returnvalue>
<returnvalues>

Я хотел бы получить следующее:

<returnvalues>
 <returnvalue>
  <key>defendant</key> 
  <value>
    <something></something>
  </value> 
  </returnvalue>
<returnvalues>

Возможно ли это? и если да, то как мне сделать так, чтобы мой ответ был динамичным? Должен ли я использовать другой тип для моего returnvalues узла?

Я должен отметить, что это в .NET 2.0, поэтому у меня нет доступа к каким-либо необычным битам WCF: (

1 Ответ

0 голосов
/ 19 января 2011

Вам нужно делать особые вещи при сериализации Xml общего словаря.

В этой статье показано, как это сделать.

В вашем случае вам нужно сделать возвращаемое значение вашего WebMethod SerializableDictionary<T1,T2>.

...