2011-08-05 4 views
7

Je souhaite accéder au service Web VirtualBox à l'aide de C#. Tout d'abord, j'ai créé un proxy de service en utilisant wsdl.exe et le fichier vboxwebService.wsdl. ' En supposant que le service Web VirtualBox se trouve dans: http://localhost:18083/ comment puis-je y accéder en utilisant C#? que je fais quelque chose comme ceci:Accès au service Web virtualbox

EndpointAddress endpoint = new EndpointAddress("http://localhost:18083/"); 
BasicHttpBinding binding = new BasicHttpBinding(); 
vboxPortTypeClient client = new vboxPortTypeClient(binding,endpoint); 

et cela fonctionne très bien (je pense):

Mais comment je peux alors obtenir la version d'instance de VirtualBox? Je ne sais pas comment utiliser la méthode suivante:

string test = string.Empty; 
client.IVirtualBox_getVersion(test); 

Répondre

7

J'ai réussi à faire ce que je me attendais Tout d'abord je généré une nouvelle classe proxy à partir de deux fichiers wsdl

wsdl vboxService.wsdl vboxweb.wsdl 

wsdl.exe alors généré une classe proxy nommée vboxService

alors le code suivant fait ce que je veux:

vboxService service = new vboxService(); 
string oVirtualBox = service.IWebsessionManager_logon("", ""); 
service.IVirtualBox_Version(oVirtualBox); 

S'il vous plaît noter que, pour simplifier, d'authentification désactivé pour l'instant - c'est la raison pour laquelle je passe des chaînes vides à la méthode IWebessionManager_logon

6

Pour ceux qui a fini ici de google avec très peu de connaissances comme moi, vboxService.wsdl et vboxweb.wsdl sont fournis avec the Virtualbox SDK. Il suffit de le télécharger et d'extraire les fichiers, vous les trouverez sous sdk/bindings/webservice.