Update: I have provided complete code example in answer below.
I have built my own little custom XML-RPC server, and since I\'d like to keep things
The easiest way is to use a WCF channelfactory
IStuffService client = new ChannelFactory<IStuffService>(
new BasicHttpBinding(),
*"Stick service URL here"*)
.CreateChannel();
And execute the request by simply calling
var response = client.YourOperation(params)
More details here: http://msdn.microsoft.com/en-us/library/ms734681.aspx
edit:edited ;)
Inspired by Doobi's answer, I looked up some more info (examples) on the subject, and came up with the following findings.
Steps to create simple WCF XML-RPC client:
Example code
using System;
using System.ServiceModel;
using Microsoft.Samples.XmlRpc;
namespace ConsoleApplication1
{
// describe your service's interface here
[ServiceContract]
public interface IServiceContract
{
[OperationContract(Action="Hello")]
string Hello(string name);
}
class Program
{
static void Main(string[] args)
{
ChannelFactory<IServiceContract> cf = new ChannelFactory<IServiceContract>(
new WebHttpBinding(), "http://www.example.com/xmlrpc");
cf.Endpoint.Behaviors.Add(new XmlRpcEndpointBehavior());
IServiceContract client = cf.CreateChannel();
// you can now call methods from your remote service
string answer = client.Hello("World");
}
}
}
Example request/response messages
Request XML
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>Hello</methodName>
<params>
<param>
<value>
<string>World</string>
</value>
</param>
</params>
</methodCall>
Response XML
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
<param>
<value>
<string>Hello, World!</string>
</value>
</param>
</params>
</methodResponse>