C # - xml-rpc с одним методом и двумя именованными параметрами

Это уточненный и конкретный вопрос, который я задал на прошлой неделе о проекте, над которым я работаю, по использованию веб-службы http://www.upcdatabase.com через xml-rpc .net. Я работаю на C #. Для запроса требуется именованный метод («поиск»), а также 2 именованных параметра («rpc_key») и («upc»), оба типа являются укусами. Моя первоначальная мысль заключалась в том, чтобы создать такой интерфейс:

[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")] IParams общедоступного интерфейса: IXmlRpcProxy { [XmlRpcMethod]
int UseNumbers (params int [] numbers); } И называется так: IFoo proxy = (IFoo) XmlRpcProxyGen.Create (typeof (IFoo)); proxy.SendMultipleParameters (1); proxy.SendMultipleParameters (1, 2, 3); ”

В качестве альтернативы параметры в этом примере могут быть предоставлены как массив типа int []: int [] parameters = new int [] {1, 2, 3}; proxy.SendMultipleParameters (параметры); "

Моя проблема в том, что я не понимаю, как применить эту концепцию к моему проекту (я новичок), я попробовал upcLookupValues ​​[] parameters = new string [] {"rpc_key", "upc"}; Но я не могу неявно преобразовать строку [] в readUPC.upcLookupvalues ​​[]. Я также не понимаю, как определить новый прокси для отправки. Скрестив пальцы, этот пост имеет смысл. Я уверен, что вы, ребята, C # xml-rpc, прямо сейчас смеетесь.


person JRB    schedule 17.03.2011    source источник