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