Ответ 1
Если вы использовали Visual Studio Add Service Reference
или инструмент svcutil.exe
, вы, вероятно, никогда не увидите ChannelFactory.
В принципе, создание прокси-сервера на стороне клиента для службы WCF - это двухэтапный процесс:
- создайте соответствующий
ChannelFactory<T>
для вашего конкретного контракта на обслуживание - учитывая этот канал factory, создайте фактический канал связи между клиентом и службой
Если у вас есть контроль над обоими концами провода, и вы можете заключить контракты на обслуживание и данные в отдельную сборку, вы можете разбить этот двухэтапный процесс и обработать его вручную:
-
создайте
ChannelFactory<IMyService>
один раз, это довольно сложная и трудоемкая операция, поэтому если это вообще возможно, попробуйте сделать это только тогда, когда это действительно необходимо, а затем кешируйте канал factory для последующего повторного использования -
создайте фактический канал, используя канал factory, когда вам нужно связаться с сервером
Это очень специфическая конструкция для служб WCF, поэтому я не думаю, что вы когда-нибудь будете использовать ее за пределами области WCF.