假设我有使用Python实现的简单XML-RPC服务:

from SimpleXMLRPCServer import SimpleXMLRPCServer

    def getTest():
        return 'test message'

    if __name__ == '__main__' :
        server = SimpleThreadedXMLRPCServer(('localhost', 8888))
        server.register_fuction(getText)
        server.serve_forever()

谁能告诉我如何从C#调用getTest()函数?

最佳答案

不是嘟嘟响我自己的喇叭,而是:http://liboxide.svn.sourceforge.net/viewvc/liboxide/trunk/Oxide.Net/Rpc/

class XmlRpcTest : XmlRpcClient
{
    private static Uri remoteHost = new Uri("http://localhost:8888/");

    [RpcCall]
    public string GetTest()
    {
        return (string)DoRequest(remoteHost,
            CreateRequest("getTest", null));
    }
}

static class Program
{
    static void Main(string[] args)
    {
        XmlRpcTest test = new XmlRpcTest();
        Console.WriteLine(test.GetTest());
    }
}

这应该可以解决问题。请注意,上面的库是LGPL,对您来说可能足够好,也可能不够好。

10-02 15:45