Как фабрика каналов получает метаданные службы wcf

Иногда клиенты не добавляют ссылку на службу wcf, а устанавливают соединение со службой wcf через фабрику каналов. Мне нравится подробно знать, когда мы используем фабрику каналов или добавляем ссылку на службу, а затем как служба wcf получает метаданные службы wcf на стороне клиента. Я много ищу в Google, чтобы узнать, и подробно описываю, но не могу его найти. Поэтому, пожалуйста, перенаправьте меня на нужную статью, в которой подробно обсуждается обнаружение службы wcf на стороне клиента.

В чем разница между добавлением ссылки службы wcf и созданием прокси через фабрику каналов?

Я думаю, когда мы создаем прокси wcf с фабрикой каналов, тогда каждый раз, когда мы запускаем приложение, каждый раз создается прокси. поэтому я думаю, что этот процесс медленнее, чем добавление ссылки на службу, потому что, когда мы добавляем ссылку на службу, прокси создается только один раз.

когда мы должны использовать фабрику каналов. подскажите пожалуйста ситуацию, когда фабрика каналов была бы лучшим вариантом. Благодарность


person Thomas    schedule 07.02.2014    source источник


Ответы (1)


На самом деле разница очень небольшая. Если вы посмотрите на код, который создает Add Service Reference, вы увидите, что он внутренне использует ChannelFactory.

Лучший ресурс, чтобы понять, что происходит, когда вы используете Добавить ссылку на службу или делаете это самостоятельно вручную, - это WCF: ручной путь… правильный путь

Также вы можете прочитать раздел «Добавление поведений в среду выполнения» Расширение WCF с помощью настраиваемого поведения, объясняет, как метаданные обрабатываются.

В основном, когда вы размещаете службу (создаете ServiceHost, либо явно, создавая ServiceHost, либо когда вы размещаете свою службу в IIS, и она создается IHttpHandler, который обрабатывает файл .svc), тип читается первым (ищет атрибуты) а затем файл конфигурации (web / app.config). То же самое происходит в клиенте, хотя аннотации в интерфейсе контракта в клиенте не очень распространены.

person Rui    schedule 07.02.2014
comment
когда использовать фабрику каналов, подскажите, пожалуйста, правильную ситуацию. Благодарность - person Thomas; 07.02.2014
comment
@Thomas На мой взгляд, всегда лучше использовать ChannelFactory, потому что, если вы используете Add Service Reference, как объясняет Мигель Кастро, он добавляет много вещей, которые вам, вероятно, не понадобятся (например, источники данных, много вещей в Интернете. config, который предназначен только для примера). - person Rui; 07.02.2014