Dans la plupart des développements client-serveur Silverlight, on travaille sur deux projets: le site Web ASP.NET et le projet Silverlight qui génère le XAP. Le site Web ASP.NET est vu comme http://localhost:xxxx/VotreService.svc, mais un jour il faudra le déployer sous un autre domaine. Comment faire pour ne rien avoir à changer ce jour là?
En fait, c’est assez simple, et je remercie Jeremy d’avoir donné l’idée ici. Mon exemple ci-dessous rend le code de Jeremy plus générique pour s’adapter à n’importe quel binding. Il suffit de modifier l’instanciation du proxy.
Supposez que vous instanciez le proxy ainsi:
MonServiceClient proxy = new MonServiceClient();
proxy.FaireLeBidule();
Eh bien il suffit de remplacer la première ligne par:
var addresse = Uri(Application.Current.Host.Source, "../VotreService.svc"))
MonServiceClient proxy = new MonServiceClient(“nom_endpoint”, addresse.AbsoluteUri);
Pour connaître ce qu’il faut mettre à la place de “nom_endpoint”, il suffit d’aller voir dans votre fichier “app.config” la valeur de l’attribut “name” qui est donné à la balise “endpoint”.
Et le tour est joué. Dommage que le SDK Silverlight ne fasse pas ça tout seul.
Comments