我需要从.NET 2.0客户端与XML-RPC服务器进行通信.你能推荐任何图书馆吗?
编辑:尝试过XML-RPC.Net后,我喜欢它生成动态代理的方式,它非常简洁.不幸的是,一如既往,事情并非如此简单.我正在访问XML-RPC服务,该服务使用非常规技术在方法名称中包含对象名称,如下所示:
object1.object2.someMethod(string1)
Run Code Online (Sandbox Code Playgroud)
这意味着我无法使用属性来设置我的方法的名称,因为它们直到运行时才知道.如果你开始尝试接近原始调用,XML-RPC.Net开始变得非常混乱.
所以,任何人都知道一个简单直接的XML-RPC库,它只会让我做(伪代码):
x = new xmlrpc(host, port)
x.makeCall("methodName", "arg1");
Run Code Online (Sandbox Code Playgroud)
我在Codeproject看了一下Michael的某个人的事情,但是没有单元测试,代码看起来非常可怕.
除非有人有更好的想法,否则我将不得不自己开始一个开源项目!
如果改变的只是方法名称(即方法签名是静态的),XML-RPC.NET 可以为您处理这个问题。常见问题解答中对此进行了解决,并指出“但是,有一些 XML-RPC API 需要在运行时动态生成方法名称......”
ISumAndDiff proxy = (ISumAndDiff)XmlRpcProxyGen.Create(typeof(ISumAndDiff));
proxy.XmlRpcMethod = "Id1234_SumAndDifference"
proxy.SumAndDifference(3, 4);
Run Code Online (Sandbox Code Playgroud)
这会生成一个实现指定接口的 XmlRpcProxy。设置 XmlRpcMethod 属性会导致 methodCalls 使用新方法名称。