Может ли Prism быть модульной при вызове веб-сервисов?

Я играю над созданием демонстрационного приложения-призмы. В моем приложении есть проект оболочки и еще один модуль, в котором есть служба призмы и представление (и модель представления). (в основном на основе видео Майка Тэлти, но в WPF, а не в Silverlight).

Я настраиваю сервис-призму для вызова своего веб-сервиса. Казалось, что все настроено правильно, но когда я вызываю этот код:

 MyServiceReferenceClient myServiceReferenceClient = new MyServiceReferenceClient();

У меня такая ошибка:

Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт MyServiceReference.IMyService в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации или потому, что в клиентском элементе не может быть найден элемент конечной точки, соответствующий этому контракту.

Я погуглил об ошибке и обнаружил, что мне нужно поместить содержимое моего app.config в мой проект оболочки, чтобы он работал.

Я скопировал этот файл в свой проект Shell, и он работал нормально.

Но мне это не нравится. Идея призмы - быть модульной. Если мне нужно иметь ссылки на все веб-службы, вызываемые в модулях, оболочка должна знать больше о внутренней работе каждого модуля, чем следовало бы.

Есть ли способ вызывать веб-сервисы в модулях и при этом сохранять классные преимущества Prism от модулей (через файл конфигурации) и регионов, которые являются единственной вещью, о которой должна знать оболочка?


person Vaccano    schedule 25.10.2010    source источник
comment
@saurabh - Когда я пытаюсь создать клиента, это не удается. Я получу точное сообщение и обновлю вопрос.   -  person Vaccano    schedule 25.10.2010
comment
@saurabh - Я добавил сообщение об ошибке.   -  person Vaccano    schedule 25.10.2010


Ответы (1)


Этот пост посвящен вашей проблеме так же, как и вы: http://blogs.southworks.net/matiasb/2009/06/20/how-to-consume-wcf-services-from-composite-application-idance-for-wpf-and-silverlightprism-v2-modules/. Кроме того, как вы упомянули, он предлагает программно настроить WCF внутри модуля, чтобы оболочка не знала информацию о модулях, которую ей не нужно знать.

person Damian Schenkelman    schedule 25.10.2010