Вы можете использовать класс ChannelFactory для генерации прокси для ваших сервисов.Все, что вы конфигурируете через файл конфигурации, также может быть выполнено с помощью кода.
Вам просто нужно создать экземпляр правильной привязки и настроить его свойства в соответствии с требованиями к обслуживанию на другой стороне.
Например:
private IDisposableService GetClient()
{
var netBinding = new BasicHttpBinding();
netBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
netBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
var factory = new ChannelFactory<IDisposableService>(netBinding, new EndpointAddress(new Uri(ServerUrl)));
factory.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
factory.Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
var channel = factory.CreateChannel();
return channel;
}
interface IDisposableService : IYourService, IDisposable
{
}
Тогда вы можете просто использовать:
using (var proxy = GetClient())
{
// call proxy here
}