Конфигурация на стороне клиента WCF для другого URI конечной точки

Я нахожусь в ситуации, когда мне нужно разработать клиент WCF, который будет иметь другой URI EndPoint, но другие параметры останутся такими же. Я бы получил URI EndPoint от пользователя.

Итак, я хотел знать, если я использую службу WCF с использованием ChannelFactory, тогда мне нужен файл app.config, который будет содержать конфигурацию на стороне клиента WCF только с одной конечной точкой, а атрибут адреса будет пустым (который я получу в качестве ввода от пользователя) Или мне нужно перейти на программно потребляющий сервис.

1 ответ

Оставьте конечную точку пустой в файле конфигурации. В своем коде добавьте метод, подобный приведенному ниже, который принимает endpointAddress в качестве параметра, который может исходить от пользователя. Используйте этот метод для создания фабрики каналов, которую вы в конечном итоге будете использовать для создания прокси

private ChannelFactory<IService1> GetChannelFactory(string endpointAddress)
{    
    // create a binding that will be common
    BasicHttpBinding myBinding = new BasicHttpBinding();
    //get your uri from the user
    EndpointAddress myEndpoint = new EndpointAddress(endpointAddress);
    ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint);
    return myChannelFactory;   
}
Другие вопросы по тегам