Это часть процесса создания клиентского прокси для вызова вашего сервиса.
По умолчанию, если вы делаете «Добавить ссылку на службу», вы просто получаете (myService)Client
класс, который вы можете создать и использовать.
То, что происходит за кулисами, представляет собой двухэтапный процесс:
создание фабрики каналов для вашего контракта на обслуживание (ChannelFactory<T>
) - это класс, который имеет возможность создать канал для конкретного контракта (канал связи между вашим клиентом и услуга вызывается)
затем фактически создаем канал , используя фабрику этого канала для установления связи.
Создание фабрики каналов - довольно дорогой шаг, поэтому, если вы сделаете это вручную, вам захочется как можно дольше сохранять в кэше эту фабрику каналов.
Создание фактического канала из фабрики каналов - задача не такая интенсивная.
Таким образом, если у вас есть доступ к вашему контракту на обслуживание (например, посредством совместного использования общих контрактов), вы можете разбить процесс создания прокси на стороне клиента на два этапа и, надеюсь, оптимизировать первый (кэшируя канальный завод).
Но опять же: для этого требуется, чтобы у вас был доступ к вашему контракту на обслуживание напрямую - как правило, только в том случае, если вы контролируете оба конца коммуникации, и оба конца .NET.