2010-11-01 17 views
0

J'utilise un Web Service qui a un point final de http://api.domain_a.com/ et en utilisant Visual Studio je peux facilement générer une classe proxy pour travailler avec le service facile et simple.Réutiliser un WebService mais avec point final personnalisé

alt text

Mais je veux créer une façon que les utilisateurs peuvent utiliser leur propre service (et accéder à leurs propres données, au lieu de moi) et je voulais savoir s'il y a un moyen que je peux changement l'URL de base du service à la volée.

À titre d'exemple

je générer les classes de proxy en ajoutant les références Web à mon projet, mais maintenant, pour chaque demande je un nom d'utilisateur que je vais obtenir les paramètres utilisateur (sorcière contient leur URL), comment puis-je (si c'est une possibilité) dire le proxy généré que j'utilise le domaine http://domain_b.com/api au lieu de l'original que j'ai utilisé lors de l'ajout des références Web?

Dois-je appeler le service manuellement? Envoi et réception de données XML? ou il y a un "commutateur" que je peux utiliser pour pointer vers la nouvelle URL?

Répondre

1

Si vous utilisez .NET 2.0, chacune de ces classes proxy doit avoir une propriété URL. Il suffit de mettre à jour la propriété URL et le proxy pointe vers le nouveau service. Si vous utilisez WCF, les choses deviennent un peu plus compliquées, mais pas de beaucoup. Il vous suffit de modifier l'adresse du point de terminaison:

var service = new ServiceClient(); 
string url = "http://domain_b.com/api"; 
EndpointAddress newAddress = new EndpointAddress(url); 
service.Endpoint.Address = newAddress;