[英]How do I map array of structs from XML to Array (IList/IEnumerable) of objects using XML-RPC by CookComputing in .NET C#?
Is there a way to transfer/map an array of structs (in XML) to an array of objects in C# .NET via XML-RPC using cook-computing library ? 有没有一种方法可以使用Cook-Computing库通过XML-RPC将结构数组(以XML格式)传输/映射到C#.NET中的对象数组?
For instance, I want to send this array to XML-RPC server: 例如,我想将此数组发送到XML-RPC服务器:
<?xml version="1.0"?>
<methodCall>
<methodName>mynamespace.methodName</methodName>
<params>
<param>
<value>
<array>
<data>
<struct>
<member>
<name>param1String</name>
<value><string>ABCDEFGH</string></value>
</member>
<member>
<name>param2Int</name>
<value><i4>123456</i4></value>
</member>
</struct>
<struct>
<member>
<name>param1String</name>
<value><string>QWERTY</string></value>
</member>
<member>
<name>param2Int</name>
<value><i4>987654</i4></value>
</member>
</struct>
</data>
</array>
</value>
</param>
</params>
</methodCall>
furthermore, I have the following server method to process this request: 此外,我具有以下服务器方法来处理此请求:
[XmlRpcMethod("mynamespace.methodName")]
public void ProcessArrayOfObjects(Array[] myArray)
//public void ProcessArrayOfObjects(XmlRpcStruct[] myArray)
{
try
{
// ... would process, but myArray is empty
}
catch (Exception e)
{
logger.Error(e, "Processing array failed! Reason: {0}", e.Message);
}
}
I am using 3rd party XML-RPC library by CookComputing in order to process XML requests. 我正在使用CookComputing的第三方XML-RPC库来处理XML请求。 All I get after mapping the received XML input to
Array[]
, or XmlRpcStruct[]
, or even array of concrete classes, is an empty array. 将收到的XML输入映射到
Array[]
或XmlRpcStruct[]
或什至是具体类的数组后,我得到的只是一个空数组。
I also tried to map it to a List<XmlRpcStruct>
, or List<ConcreteObject>
, while removed <array></array>
and <data></data>
tags. 我还尝试将其映射到
List<XmlRpcStruct>
或List<ConcreteObject>
,同时删除了<array></array>
和<data></data>
标签。 I got XML-RPC request error (wrong XML format). 我收到XML-RPC请求错误(错误的XML格式)。
What else can I do with CookComputing framework ? CookComputing框架还能做什么?
The simple answer is this: I need to wrap each of my <struct></struct>
to a <value></value>
tag: 简单的答案是这样的:我需要将每个
<struct></struct>
包装到一个<value></value>
标记中:
<?xml version="1.0"?>
<methodCall>
<methodName>mynamespace.methodName</methodName>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>param1String</name>
<value><string>ABCDEFGH</string></value>
</member>
<member>
<name>param2Int</name>
<value><i4>123456</i4></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>param1String</name>
<value><string>QWERTY</string></value>
</member>
<member>
<name>param2Int</name>
<value><i4>987654</i4></value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.