L'exécution d'un ServiceHost avec un seul contrat fonctionne bien comme ça :
servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();
J'aimerais maintenant ajouter un deuxième (troisième, quatrième, ...) contrat. Ma première idée serait d'ajouter d'autres points d'extrémité comme ceci :
servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.AddServiceEndpoint(typeof(IMyService2), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService2");
servicehost.Open();
Mais bien sûr, cela ne fonctionne pas, puisque lors de la création du ServiceHost, je peux passer soit MyService1 comme paramètre, soit MyService2. Je peux donc ajouter beaucoup de points de terminaison à mon service, mais tous doivent utiliser le même contrat, puisque je ne peux fournir qu'une seule implémentation ?
J'ai l'impression de passer à côté de l'essentiel, ici. Il doit bien y avoir un moyen de fournir une implémentation pour chaque contrat d'extrémité que j'ajoute, ou pas ?