[英]XML-RPC struct to C# class with dynamic named structs
我正在尝试将XML-RPC结构映射到C#类。 我正在使用来自github的XmlRpcLight。 下面是传递的XML-RPC:
<?xml version=""1.0"" encoding=""ISO-8859-1""?>
<methodCall>
<methodName>namespace.method</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>OrderID</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>OrderItems</name>
<value>
<struct>
<member>
<name>0</name>
<value>
<struct>
<member>
<name>ItemID</name>
<value>
<string>12345</string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>1</name>
<value>
<struct>
<member>
<name>ItemID</name>
<value>
<string>23456</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
我正在尝试尝试映射的类如下:
public class OrderItem
{
public string ItemID;
}
public class OrderItems
{
public OrderItem[] OrderItem;
}
public class OrderData
{
public int OrderID;
public OrderItems OrderItems;
}
我收到的错误消息如下。
请求包含缺少非可选成员的结构值:OrderItem [请求:参数2:映射为类型OrderData的结构:成员映射为OrderItems的成员OrderItems:映射为OrderItems的结构]
由于订购商品名称是一个动态数字,因此我无法解决该方法。 我试过数组,数组的数组,但似乎没有什么让它通过。 我让它起作用的唯一方法是使用XmlRpcStruct类型代替“ OrderItems”的自定义类。 虽然这有效,但这不是我想要的结果。
谁能帮助我了解如何将这些XMl-RPC类型映射到C#?
非常感谢!
您是否尝试过使用“特殊粘贴”为您生成类?
https://stackoverflow.com/a/14700981/112397
从您的xml生成的C#太可怕了,但是我可以看到它试图做什么,您是否尝试过这样的事情?
编辑:我认为您可能缺少继承级别。
public class Item
{
public string ItemID;
}
public class OrderItem
{
public Item[] Items;
}
public class OrderItems
{
public OrderItem[] OrderItem;
}
public class OrderData
{
public int OrderID;
public OrderItems OrderItems;
}
当我阅读此答案时 ,您对数组的注释感到震惊,认为我会自己生成该代码,看看是否看到类似的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.