Который из них best.Net библиотека XML-RPC?


Мне нужно связаться с сервером 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 9

3 ответа:

Если имя метода-это все, что изменяется (т. е. сигнатура метода статична) XML-RPC.NET я могу справиться с этим за тебя. Этот вопрос рассматривается В FAQ , отмечая: "однако существуют некоторые API XML-RPC, которые требуют, чтобы имя метода создавалось динамически во время выполнения..."Из FAQ:

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

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

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