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