Web服务序列化

时间:2011-01-18 13:21:24

标签: .net .net-2.0 xml-serialization asmx

我目前正在设置一个通用的Web服务,它接受凭据,环境并尝试记录一个人。它还返回一个具有对特定环境而言重要的返回值的集合。

我遇到的问题是当我想要返回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 :(得分:0)

在Xml序列化通用词典时,您需要做一些特殊的事情。

This article告诉您如何操作。

在您的情况下,您需要将WebMethod的返回值设为SerializableDictionary<T1,T2>