9

我需要从 .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");

我在 Codeproject 上看过 Michael 的一个东西,但是没有单元测试,代码看起来很糟糕。

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

4

3 回答 3

4

如果方法名称发生了变化(即方法签名是静态的),XML-RPC.NET 可以为您处理。这在常见问题解答中得到解决,并指出“但是,有一些 XML-RPC API 需要在运行时动态生成方法名称......”来自常见问题解答:

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

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

于 2008-12-17T16:01:48.780 回答
3

我前段时间使用了来自www.xml-rpc.net的库并取得了一些成功,并且可以推荐它——它确实感觉设计和功能都很好。

于 2008-09-19T11:30:58.603 回答
1

I had also tried to run www.xml-rpc.net with Mono on Windows XP and it worked in Mono .NET Runtime also properly. Just for information for everybody.

于 2009-11-28T19:38:45.550 回答