Когда вы говорите, что все службы одинаковы, я предполагаю, что вы имеете в виду, что они похожи .
Если они действительно идентичны , вы сможете использовать один и тот же клиент WCF для всех них (только с разными адресами).
Если это не так, вы можете определить интерфейс, который соответствует предоставляемой функциональности. Это может выглядеть так:
public interface IMyService
{
decimal GetPrice(int productId);
void Book(int thingId);
}
Теперь напишите реализации IMyService, которые служат Адаптерами между каждым клиентом WCF и IMyService.
В остальной части вашего приложения вы программируете только с интерфейсом IMyService. При желании вы можете использовать Внедрение зависимостей , чтобы внедрить одну или несколько конкретных реализаций IMyService в код приложения.