2017-01-30 9 views
0

Я просматриваю учебные пособия по WCF и обнаруживаю, что эти ссылки указывают на то, чтобы сделать конечную точку mex доступной, чтобы допускать неявное добавление ссылок службы на клиентов. Думаю, это позволяет VS создавать классы прокси при использовании результирующего WSDL-файла?Когда использовать WCF ChannelFactory через ссылку на службу

Кодовая база, которую я пытаюсь получить, однако, не использует неявные ссылки на службы. Вместо этого у клиентов есть доступ к DuplexChannelFactory. Каковы преимущества служебной связи через явные ChannelFactories и неявные ссылки на службы?

Этот вопрос здесь (How to re-write WCF client to use ChannelFactory instead of service reference), в котором упоминается компания, выбирающая ChannelFactories над ссылками на сервисы, но не упомянула почему.

ответ

1

Когда использовать ChannelFactories через службу ссылки

Всегда используйте ChannelFactory, кроме случаев, когда нет другого выбора. Я не могу сказать это достаточно сильно. ссылки Сервисные

  • комплекс,
  • непредсказуемы,
  • косвенными, и
  • часто donotwork, особенно при обновлении.

Единственные причины, вы можете использовать ссылку на службу:

  1. У вас нет бинарного доступа к определению и контрактным типам услуг в коде. Например, вы звоните в общедоступную службу через Интернет, и разработчики службы не смогут предоставить их вам.
  2. Вот и все. Это единственная причина.

Можно утверждать, что вы должны использовать служебную ссылку, если у вас есть доступ к определению услуги и типам контрактов, но они определены внутри какой-либо сборки uber с целым рядом других вещей, которые вам не нужны для , Тем не менее, я нахожу это сомнительным, потому что в этом случае вы могли бы просто воссоздать определение и типы услуг и использовать отношение WCF к эквивалентности контракта.

+1

Я бы добавил к вышеприведенному (очень хорошему) списку, что если вы должны использовать ссылку на службу, вы всегда можете вывести контракт из сгенерированного кода и использовать этот контракт с помощью ChannelFctory '. Я сделал это несколько раз, так как я не поклонник ссылок на службы и все лишнее дерьмо, которое они приносят. – Tim