Web服务序列化

发布于 2024-10-12 13:55:07 字数 1079 浏览 4 评论 0原文

我目前正在设置一个通用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

靑春怀旧 2024-10-19 13:55:08

当 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>.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文