Web服务序列化
我目前正在设置一个通用 Web 服务,它接受凭据、环境并尝试让人员登录。它还返回一个集合,其中包含对特定环境而言重要的返回值。
我遇到的问题是当我想在 returnvalues
节点中返回对象图的一部分时。
由于返回值是一个 Dictionairy
它不知道如何序列化对象图。
因此,我想将其序列化为 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 位:(
I'm currently setting up a generic webservice that takes in credentials, an environment and tries to log a person in. It also returns a collection with return values that matter to for the specific environments.
The problem I'm having is when I want to return part of an object graph in the returnvalues
node.
Since return values is a Dictionairy<string, object>
it has no clue how to serialize the object graph.
So I thought I'd serialize this into a MemoryStream
, load this into an XmlDocument
and then serialize this.
How ever that gives the foloowing:
<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>
What I'd like to get is the following:
<returnvalues>
<returnvalue>
<key>defendant</key>
<value>
<something></something>
</value>
</returnvalue>
<returnvalues>
Is this possible? and if so, how do I go about making my response dynamic in such a way? Should I use a different type for my returnvalues
node?
I should note this is in .NET 2.0 so i don't have access to any fancy WCF bits :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当 Xml 序列化通用字典时,您需要做一些特殊的事情。
本文向您展示了如何执行此操作。
在您的情况下,您需要将 WebMethod 的返回值设置为
SerializedDictionary
。You need to do special things when Xml-serializing a generic Dictionary.
This article shows you how to do it.
In your case, you'd need to make the return value of your WebMethod a
SerializableDictionary<T1,T2>
.