繁体   English   中英

XML-RPC结构到具有动态命名结构的C#类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM