Execute o WCF ServiceHost com vários contratos

A execução de um ServiceHost com um único contrato está funcionando bem assim:

servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();

Agora eu gostaria de adicionar um segundo (terceiro, quarto, ...) contrato. Meu primeiro palpite seria apenas adicionar mais pontos de extremidade como este:

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();

Mas é claro que isso não funciona, pois na criação do ServiceHost eu posso passar o MyService1 como parâmetro ou o MyService2 - para adicionar muitos pontos de extremidade ao meu serviço, mas todos precisam usar o mesmo contrato, pois só posso fornecer uma implementação?
Tenho a sensação de que estou perdendo o objetivo, aqui. Claro que deve haver alguma maneira de fornecer uma implementação para cada contrato de terminal que adiciono ou não?

questionAnswers(8)

yourAnswerToTheQuestion