Сначала я рассматривал их как любую зависимость, передавая их в ctor классу, потребляющему службу:
var serviceConsumer = new ServiceConsumer(new MailingServiceClient())
Проблема заключалась в том, что после исключения из службы оно переходило в состояние отказа ине будет отвечать ни на какие запросы, поэтому необходимо выполнить повторную инициализацию.
Более того, я ознакомился с тем фактом, что службы wcf могут быть неправильно расположены в нескольких случаях, поскольку метод dispose генерируемого прокси-серверапрервана (вызовы закрыты без проверки состояния сбоя) и столкнулась с несколькими путями преодоления этого:
- упаковка каждого вызова в каждую службу.
- переопределить поведение IDisposable по умолчанию класса, сгенерированного scvutil.exe
Поскольку я не хотел бы, чтобы потребительский код сам создавал клиент службы по причинам тестирования, у меня возникают следующие вопросы: