2008-09-19 3 views
9

Je dois communiquer avec un serveur XML-RPC à partir d'un client .NET 2.0. Pouvez-vous recommander des bibliothèques?Quelle est la meilleure bibliothèque .Net XML-RPC?

EDIT: Après avoir essayé XML-RPC.Net, j'aime la manière dont il génère les proxies dynamiques, c'est très soigné. Malheureusement, comme toujours, les choses ne sont pas si simples. J'accède un service XML-RPC qui utilise la technique peu orthodoxe d'avoir les noms d'objets dans les noms des méthodes, comme ceci:

object1.object2.someMethod(string1) 

Cela signifie que je ne peux pas utiliser les attributs pour définir les noms de mes méthodes , car ils ne sont pas connus avant l'exécution. Si vous commencez à vous rapprocher des appels bruts, XML-RPC.Net commence à devenir assez compliqué.

Ainsi, quelqu'un sait d'une bibliothèque XML-RPC simple et direct qui va me laisser faire (pseudocode):

x = new xmlrpc(host, port) 
x.makeCall("methodName", "arg1"); 

J'ai regardé une chose par Michael quelqu'un sur CodeProject, mais il Il n'y a pas de tests unitaires et le code semble plutôt désastreux.

À moins que quelqu'un ait une meilleure idée, je dirais que je vais devoir lancer moi-même un projet open source!

Répondre

4

Si le nom de la méthode est tout ce qui change (c'est-à-dire que la signature de la méthode est statique), XML-RPC.NET peut la gérer pour vous. Cette question est traitée in the FAQ, notant « Cependant, il y a des API XML-RPC qui nécessitent le nom de méthode pour générer dynamiquement lors de l'exécution ... » A partir de la FAQ:

ISumAndDiff proxy = (ISumAndDiff)XmlRpcProxyGen.Create(typeof(ISumAndDiff)); 
proxy.XmlRpcMethod = "Id1234_SumAndDifference" 
proxy.SumAndDifference(3, 4); 

Cela génère une XmlRpcProxy qui implementes spécifié interface. La définition de l'attribut XmlRpcMethod entraîne l'utilisation de methodCalls par le nouveau nom de la méthode.

3

J'ai utilisé la bibliothèque de www.xml-rpc.net il y a quelques temps avec un certain succès et je peux le recommander - il se sentait bien conçu et fonctionnel.

1

J'avais également essayé d'exécuter www.xml-rpc.net avec Mono sur Windows XP et cela fonctionnait également dans Mono .NET Runtime. Juste pour information pour tout le monde.