Что такое фабрика каналов в .NET? - PullRequest
18 голосов
/ 19 марта 2010

Что такое Channel Factory и зачем вы его используете?

Ответы [ 2 ]

21 голосов
/ 19 марта 2010

Если вы использовали Visual Studio Add Service Reference или svcutil.exe, вы, вероятно, никогда не увидите ChannelFactory.

По сути, создание клиентского прокси для службы WCF является двухэтапным процессом:

  • создать соответствующий ChannelFactory<T> для вашего конкретного контракта на обслуживание
  • с учетом того, что фабрика каналов создает фактический канал связи между клиентом и службой

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

  • создайте ChannelFactory<IMyService> один раз, это довольно сложная и трудоемкая операция, поэтому, если возможно, попробуйте сделать это только тогда, когда это действительно необходимо, а затем кэшируйте фабрику каналов для последующего повторного использования

  • создайте фактический канал, используя фабрику каналов, когда вам нужно связаться с сервером

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

5 голосов
/ 21 июня 2012

Класс ChannelFactory используется для создания канала между клиентом и службой без использования прокси. В некоторых случаях у вас может быть служба, тесно связанная с клиентским приложением. В таком случае вы можете напрямую ссылаться на DLL-интерфейс и использовать ChannelFactory для вызова ваших методов, используя это.

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

...