【问题标题】:XML RPC Equivalent of a dictionary字典的 XML RPC 等效项
【发布时间】:2014-01-10 15:57:33
【问题描述】:

通过查看此网站上的迷你规范,我有一个用 C# 开发的自定义 XML RPC 库:

http://xmlrpc.scripting.com/spec.html

它没有任何关于如何将标量字典序列化为 XML 的说明。幸运的是,到目前为止,我用 C# 编写的 .NET 客户端应用程序不需要将字典作为方法参数发送。但现在,确实如此。

我调用的服务器也有一个供 PHP 开发人员使用的 SOAP 客户端。我使用那个 SOAP 客户端在服务器(需要字典的那个)上调用上述方法,只是为了查看 XML 有效负载,所以我可以模仿它。

但是,由于它嵌入在 SOAP 信封中,因此我假设如果我使用的是纯 XML RPC 而不是 SOAP,它会与我需要发送的内容略有不同。

我想发送Dictionary<int, int>。这是 SOAP 信封包含的字典部分的内容。

<item xsi:type="ns2:Map">
  <item>
    <key xsi:type="xsd:int">609</key>
    <value xsi:type="xsd:int">1</value>
   </item>
</item>

所以,我真的在寻找与之等效的 XML RPC。

【问题讨论】:

    标签: c# soap xml-rpc soap-client xmlrpcclient


    【解决方案1】:

    如何使用 DataContractSerializer?它最终将 .NET 类型(大部分)序列化为 SOAP 格式。它应该以可以包含到 SOAP 正文中的方式序列化字典。 http://msdn.microsoft.com/en-us/library/ms752244(v=vs.110).aspx

    【讨论】:

    • 我现在明白你想说什么了。我想你假设我在System.Xml 命名空间中使用XmlSerializer,因为它也有序列化字典的问题。我不是。我正在使用我自己编写的一个简单的解析器来读取 XML 节点和一个简单的TextWriter 从我提到的链接中提供的词汇表中生成 XML RPC 节点。
    【解决方案2】:

    根据我在原帖中提到的链接中提供的定义,我刚刚以&lt;struct&gt; 的形式发送了字典并且它有效。

    在我这样做之前,我只是将自定义 POCO 序列化为 &lt;struct&gt;

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2011-08-31
      • 2021-08-12
      • 1970-01-01
      • 2014-09-22
      • 2013-08-15
      • 2012-11-10
      • 2011-12-19
      • 2023-04-08
      相关资源
      最近更新 更多