Динамическое предоставление сервисных ссылок между WCF и Silverlight

В течение нескольких дней я бился головой о кирпичную стену, пытаясь решить проблему, возникающую у меня с WCF Services и Silverlight.

Моя проблема в том, что у меня есть 5 модулей проекта Silverlight, которые я динамически считываю в одно главное приложение Silverlight. Каждый из этих модулей имеет свой собственный бизнес-уровень и DAL, поэтому он выполняет свои собственные вызовы для своих служб WCF, но когда я загружаю модули и пытаюсь выполнить команду WCF, я получаю сообщение об ошибке, в котором говорится, что моя ServiceReference не существует, это связано с тем, что Сервис является частью Модуля "ServiceReference.config", а не из Справочника по сервисам мастер-проектов.

Есть ли где-нибудь, что я могу динамически заставить проект Master Silverlight взять список ChannelFactory, а затем создать каналы и прочитать все метаданные и полностью избавиться от Service Refences? Как вы справляетесь с необходимостью пользоваться сервисными ссылками?

Вся ваша помощь очень ценится, я думаю, я схожу с ума по этому поводу.

Спасибо

Робби

1 ответ

Решение

Да, вы можете сделать это. Вы можете скопировать сгенерированный файл "Reference.cs", для этого вам необходимо:

  1. Показать все файлы в вашем проекте.
  2. Разверните ссылку на службу и найдите файл Reference.cs.

Теперь вы можете скопировать это и добавить в свой проект как обычный класс и удалить сервисную ссылку вашего приложения. Для ChannelFactory, да, вы можете создать с помощью этого кода:

   ChannelFactory<IServiceContract> factory = new ChannelFactory<IServiceContract>(endpoint);
   IServiceContract channel = factory.CreateChannel();
Другие вопросы по тегам