哪个是最好的.Net XML-RPC库?

时间:2020-03-06 14:25:33  来源:igfitidea点击:

我需要从.NET 2.0客户端与XML-RPC服务器进行通信。你能推荐任何图书馆吗?

编辑:尝试过XML-RPC.Net,我喜欢它生成动态代理的方式,它非常简洁。不幸的是,事情并非总是如此简单。我正在访问XML-RPC服务,该服务使用非传统的技术,即在方法名称中使用对象名称,如下所示:

object1.object2.someMethod(string1)

这意味着我不能使用属性来设置我的方法的名称,因为它们在运行时才知道。如果我们开始尝试接近原始调用,则XML-RPC.Net会变得非常混乱。

因此,任何人都知道一个简单明了的XML-RPC库,让我来做(伪代码):

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

我看了Michael在Codeproject上的一件事,但是没有单元测试,代码看起来很可怕。

除非有人有更好的主意,否则我将不得不自己开始一个开源项目!

解决方案

前一段时间,我已经使用了www.xml-rpc.net上的库,并取得了一些成功,并且可以推荐它-它的确设计得很好并且功能完善。

如果方法名称就是所有正在更改的名称(即方法签名是静态的),则XML-RPC.NET可以为我们处理。这在FAQ中得到解决,并指出"但是,有些XML-RPC API要求在运行时动态生成方法名称..."。

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

这将生成XmlRpcProxy,该XmlRpcProxy实现指定的接口。设置XmlRpcMethod属性会导致methodCalls使用新的方法名称。

我还尝试过在Windows XP上使用Mono运行www.xml-rpc.net,它在Mono .NET Runtime中也可以正常运行。只为每个人提供信息。