An XML-RPC Package for .NET

Introduction

This package provides a simple XML-RPC client and server for C# applications. It's pure C#, using .Net for networking and XML functionality.

What separates this from XML-RPC.Net? This is much lower tech, no required attributes, no proxies, no IIS.

Features

  • full xmlrpc.org spec implementation basic client (XmlRpcRequest)
  • Embedded server (XmlRpcServer)
  • Introspection System object (XmlRpcSystemObject) optional XML-RPC specific method access attribute over and above C#'s "public" (XmlRpcExposedAttribute)

Prerequisites To build

  • Have a new .NET SDK loaded Have csc and friends in your PATH.
  • Put nant/bin into your PATH. nant is an OpenSource C# build tool, binaries included in ./nant, or see http://nant.sourceforge.net

To Build

In a command shell:nant

Basic Test

Open two command shells, in one:server

In the other:client

Sample Code

Under src/samples there are examples. There is a simple server, a simple client, an example using the system object remotely and a server using the optional XmlRpcExposed attribute.

To Do

  • Standard Fault codes
  • Better exception handling
  • Support the rest of XML-RPC "system" Object
  • boxcaring
  • capabilities
  • Documentation
  • Threading/performance
  • optimize
  • Test with Mono

Changes:

Version  Date Change
1.2  20030130  Introspection via "system" object.
Added optional XmlRpcExposed Attribute.
Moved to using "is" operator...damn C# is syntax fat.
Fix known deserializer bug pertaining to containers . (array/struct) in containers.
1.1 20030128 Bug fix in request deserializer.
Better samples.
response.FaultCode/.FaultString added.
indentention on the XML in ToString of   request/response.
1.0 20030125

Support for base64.
Use .Net's XmlWriter.
Centralize XML-RPC tokens into XmlRpcXmlTokens.


Similar Articles