Я не уверен, что это даже возможно, если честно,
Мне интересно, есть ли способ отменить использование конфигурационного файла без необходимости отмены создания клиентского прокси. Позвольте мне привести пример:
В клиентском приложении у нас есть проект WCF DAL. Это оболочка для их WCF-сервера для клиентского приложения. В настоящее время клиентскому приложению потребуются все привязки и конечные точки, заданные в файле конфигурации, и обычно (в наших проектах) выполняется что-то вроде следующего, чтобы обернуть службу WCF:
public MyObject GetMyObject(int id)
{
using(var service = new MyObjectDataServiceClient())
{
return service.GetMyOBject(id);
}
}
Это создаст вызов к серверу и вернет объект. Если клиентское приложение не имеет привязок и конечных точек, оно взорвется. Мы можем изменить каждое создание клиента службы данных, чтобы создать привязку и конечную точку, или создать собственный канал, чтобы сделать это для нас, но это означает изменение текущего кода уровня WCF DAL.
Моя цель состоит в том, чтобы попытаться создать способ вставки процесса в слой DAL WCF, который будет обрабатывать привязки и конечные точки без необходимости изменения кода потребления, одновременно устраняя необходимость в файле конфигурации.
До сих пор я думал о том, чтобы попытаться использовать файл TT, чтобы он создал частичный класс клиента службы данных и переопределил часть фабрики каналов. Это не удалось из-за того, что вызов конструктора для клиента службы данных переходит прямо в абстрактный класс (System.ServiceModel.ClientBase ) и пытается вывести содержимое конфигурации. Я не смог найти способ остановить его, глядя в конфигурации через этот частичный класс и не меняя уровень сервиса WCF DAL.