这是我上周提出的一个精炼而集中的问题,是关于我正在开展的一个通过 xml-rpc .net使用 Web 服务http://www.upcdatabase.com的项目。我在 c# 中工作。该请求需要一个命名方法(“lookup”)以及 2 个命名参数(“rpc_key”)和(“upc”),这两种类型都是 stings。我最初的想法是创建一个这样的界面:
[XmlRpcUrl("http://www.upcdatabase.com/xmlrpc")]
public interface UPChelp : IXmlRpcProxy
[XmlRpcMethod("lookup")]
upcLookupValues lookupUPC(string rpc_key, string upc);
upcLookupValues is a struct that is returned defined as:
public struct upcLookupValues
{
public string upc;
public int pendingUpdates;
public string status;
public string ean;
public string issureCountryCode;
public bool found;
public string description;
public string message;
public string size;
public string issureCountry;
public string noCacheAfterUTC;
public string lastModifiedUTC;
}
我一直在使用的代理一代是
UPChelp upcObj = XmlRpcProxyGen.Create<UPChelp>();
upcLookupValues myLookup = upcObj.lookupUPC("000000000000000000000000000000000000000000”, "639382000393");
我收到无效参数的响应。因此,在阅读 xml-rpc 常见问题解答时,我遇到了:
“2.20 如何调用带有可变参数数量的 XML-RPC 方法?params 关键字可用于调用采用可变数量参数的 XML-RPC 方法。例如,如果 XML-RPC 方法采用可变数量的整数参数,则可以这样定义: [XmlRpcUrl("http://www.cookcomputing.com/notimpl.rem")] public interface IParams : IXmlRpcProxy { [XmlRpcMethod]
int UseNumbers(params int[] numbers); 并像这样调用: IFoo proxy = (IFoo)XmlRpcProxyGen.Create(typeof(IFoo)); proxy.SendMultipleParameters(1); proxy.SendMultipleParameters(1, 2, 3);”</p>或者,此示例中的参数可以作为 int[] 类型的数组提供: int[] parameters = new int[] { 1, 2, 3 }; proxy.SendMultipleParameters(参数);"
我的问题是我不明白如何将这个概念应用到我的项目中,(我是新手),我尝试了 upcLookupValues[] parameters = new string[] { "rpc_key", "upc" }; 但是我无法将 string[] 隐式转换为 readUPC.upcLookupvalues[]。我也不明白如何定义新的提交代理。我的手指交叉这个帖子是有道理的。我相信你们 C# xml-rpc 的人现在都在笑。