[Mono-list] Xml-rpc.net problem with mono

Greg Hamilton gregh at object-craft.com.au
Mon May 16 22:59:10 EDT 2005


Rohit wrote:
> Hello,
> I downloaded the XML-RPC implementation for .NET from www.xml-rpc.net
> . I can't make it work. I built it using nant I can even successfully
> compile programs with it. This is the example program which I am
> trying to run:
> 

<snip>

> Is the problem with my program or the way I built the package.
> Thanks for any help
> Rohit

 From the traceback it looks like your program is connecting to the 
XML-RPC server but the method you want to invoke is not known by the 
server. Probably something to do with case sensitivity or namespace.

I downloaded the package from http://www.xml-rpc.net. No need to build 
it as there are pre-built dll files in the bin directory which seem to 
work fine with mono.

So I built your example and couldn't figure out why it didn't work and 
after some swearing I delved into the docs and found XmlRpcProxyGen 
which will create a callable proxy from an interface. Pretty neat. Try 
this.....


using System;
using CookComputing.XmlRpc;

struct SumAndDiff {
     public int sum;
     public int difference;
}

[XmlRpcUrl("http://www.cookcomputing.com/xmlrpcsamples/math.rem")]
interface IMath
{
     [XmlRpcMethod("math.Add")]
     int Add(int a, int b);
     [XmlRpcMethod("math.Divide")]
     int Divide(int a, int b);
     [XmlRpcMethod("math.Multiply")]
     int Multiply(int a, int b);
     [XmlRpcMethod("math.Subtract")]
     int Subtract(int a, int b);
     [XmlRpcMethod("math.SumAndDifference")]
     SumAndDiff SumAndDifference(int a, int b);
}


class Test
{
     static void Main()
     {
         IMath mathProxy = (IMath)XmlRpcProxyGen.Create(typeof(IMath));

         Console.WriteLine("5 + 4 = {0}", mathProxy.Add(5, 4));

         SumAndDiff sumAndDiff = mathProxy.SumAndDifference(10, 15);
         Console.WriteLine("Sum = {0}, Difference = {1}",
                           sumAndDiff.sum, sumAndDiff.difference);
     }
}


More information about the Mono-list mailing list