Запуск ServiceHost с одним контрактом отлично работает следующим образом:
servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();
Теперь я хочу добавить второй (3-й, 4-й, ...) контракт. Мое первое предположение заключалось в том, чтобы просто добавить больше конечных точек, например:
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();
Но, конечно, это не работает, поскольку при создании ServiceHost я могу либо передать MyService1 в качестве параметра, либо MyService2, поэтому я могу добавить много конечных точек в свою службу, но все они должны использовать один и тот же контракт, поскольку я могу предоставить только одна реализация?
У меня такое чувство, что я упускаю суть здесь. Конечно, должен быть какой-то способ предоставить реализацию для каждого добавляемого мной контракта на конечную точку, или нет?