Если у вас есть доступ к сборкам, которые содержат типы, которые определяют контракт на обслуживание, операции и контракты на данные, то вы можете просто создать прокси на лету, используя ChannelFactory
.В этом случае вам не нужно извлекать какие-либо метаданные службы, поскольку у вас уже есть доступ ко всей информации, необходимой для вызова службы.
Например,
// 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);
Это также помогает, если выиметь доступ к файлу конфигурации на стороне службы, чтобы вы могли скопировать информацию о конечной точке оттуда в свою конфигурацию клиента.