簡體   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