Если они не хотят показывать метаданные своего сервиса в сервисе, посмотрите, предоставят ли они вам доступ к сборкам, содержащим контракт на обслуживание, операции и контракты на данные. Затем вы можете создать прокси для службы без метаданных.
// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();
// Create data contract
var requestDataContract = new MyDataContract();
// Call service operation.
var responseDataContract = proxy.MyServiceOperation(requestDataContract);
Также полезно, если у вас есть доступ к файлу конфигурации на стороне службы, поэтому вы можете скопировать информацию о конечной точке оттуда в свою конфигурацию клиента.