Cook Computing

XML-RPC.NET 0.5.4

July 14, 2002 Written by Charles Cook

I have just updated XML-RPC.NET with version 0.5.4.

This release contains three changes:

(1) In some cases the name of a member in an XML-RPC struct might be invalid in the .NET programming language being used. To handle this the XmlRpcMember attribute is now available. This allows an XML-RPC member name to be mapped to and from a different .NET name. For example:


public struct SumAndDiffValue
{ 
  [XmlRpcMember("samples.sum")] 
  public int sum; 
  [XmlRpcMember("samples.difference")] 
  public int difference; 
}

(2) Classes derived from XmlRpcClientProtocol inherit a Headers property of type WebHeaderCollection. This can be used to specify custom headers which will be added to the HTTP request. For example:


SumAndDiffProxy proxy = new SumAndDiffProxy(); 
proxy.Headers.Add("TestHeader", "this_is_a_test");
SumAndDiffValue ret = proxy->SumAndDifference(2, 3);

(3) Deserialization of XML-RPC arrays has been changed so that if the parser determines that the elements of an array are all the same type, an array of that type is created. The motivation for this change was to improve usage of the system.methodSignature Introspection API method:


object[] signatures = proxy.SystemMethodSignature("samples.sumAndDifference"); 
foreach (string[] signature in signatures) 
  foreach (string param in signature)  	
  Console.WriteLine(param);