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