Разница между созданием клиентского прокси вручную и ссылкой на службу MSMQ WCF? - PullRequest
1 голос
/ 31 декабря 2011

В большинстве примеров служб WCF, использующих транспорт MSMQ, всегда предпочтительнее создать прокси вручную, используя svcutil в командной строке Visual Studio, а не просто добавить ссылку на службу.Если вы можете просто сослаться на службу, указав ее адрес конечной точки в диалоговом окне «Добавить ссылку на службу» в Visual Studio, зачем создавать прокси с командной строкой VS (поскольку это немного более трудоемко)?Я только что натолкнулся на это, читая WCF 4 Шаг за шагом :

Обратите внимание, что вы не можете легко использовать мастер добавления ссылок на службы в Visual Studio для добавления ссылки на службу WCFкоторый использует транспорт MSMQ.

Почему именно это сложно?В чем именно заключается преимущество (если таковое имеется) прежнего метода ссылки на службу WCF?Мне кажется, что создание прокси вручную просто излишне усложняет задачу.

1 Ответ

1 голос
/ 01 января 2012

Вам не нужно предварительно генерировать прокси, если у вас есть ссылка на сборки, которые определяют интерфейс службы, операции и контракты данных.Затем вы можете создать прокси на лету, используя ChannelFactory.

var factory = new ChannelFactory<IMyServiceInterface>("MyServiceNameInAppConfig");
var proxy = factory.CreateChannel();

Это намного проще, чем использовать svcutil.Однако, если служба удаленная и вы не можете получить доступ к сборкам типов, у вас нет другого выбора, кроме как создать прокси.

Относительно вашего вопроса о том, почему для генерации прокси-кода проще использовать svcutil вместо VS, не видя реальной книги, это сложно комментировать, но под капотом visual studio использует svcutil для генерации кода в любом случае,поэтому я не вижу, как это будет лучше или хуже.Я полагаю, что когда вы делаете это вручную, вы получаете больше контроля над тем, что генерируется.

...