Какая библиотека .Net XML-RPC является лучшей? - PullRequest
9 голосов
/ 19 сентября 2008

Мне нужно общаться с сервером XML-RPC из клиента .NET 2.0. Можете ли вы порекомендовать какие-либо библиотеки?

РЕДАКТИРОВАТЬ: попробовав XML-RPC.Net, мне нравится, как он генерирует динамические прокси, это очень аккуратно. К сожалению, как всегда, все не так просто. Я обращаюсь к сервису XML-RPC, который использует неортодоксальную технику с именами объектов в именах методов, например, так:

object1.object2.someMethod(string1)

Это означает, что я не могу использовать атрибуты для установки имен моих методов, так как они не известны до времени выполнения. Если вы начнете пытаться приблизиться к необработанным вызовам, XML-RPC.Net станет довольно грязным.

Итак, кто-нибудь знает простую и понятную библиотеку XML-RPC, которая позволит мне сделать (псевдокод):

x = new xmlrpc(host, port)
x.makeCall("methodName", "arg1");

Я посмотрел на кого-то Майкла в Codeproject, но модульных тестов нет, и код выглядит довольно ужасно.

Если у кого-то нет лучшей идеи, похоже, мне придется самому начинать проект с открытым исходным кодом!

Ответы [ 3 ]

4 голосов
/ 17 декабря 2008

Если имя метода - это все, что меняется (то есть сигнатура метода является статической), XML-RPC.NET может обработать это для вас. Этот вопрос рассматривается в разделе часто задаваемых вопросов , где отмечается: «Однако существуют некоторые API-интерфейсы XML-RPC, которые требуют динамического создания имени метода во время выполнения ...».

ISumAndDiff proxy = (ISumAndDiff)XmlRpcProxyGen.Create(typeof(ISumAndDiff));
proxy.XmlRpcMethod = "Id1234_SumAndDifference"
proxy.SumAndDifference(3, 4);

Это генерирует XmlRpcProxy, который реализует указанный интерфейс. Установка атрибута XmlRpcMethod заставляет methodCalls использовать имя нового метода.

3 голосов
/ 19 сентября 2008

Я использовал библиотеку из www.xml-rpc.net некоторое время назад с некоторым успехом и могу порекомендовать ее - она ​​действительно хорошо продумана и функционирует.

1 голос
/ 28 ноября 2009

Я также пытался запустить www.xml-rpc.net с Mono в Windows XP, и он работал в Mono .NET Runtime также правильно. Просто для информации для всех.

...