Может ли Prism быть модульной при вызове веб-сервисов? - PullRequest
2 голосов
/ 25 октября 2010

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

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

 MyServiceReferenceClient myServiceReferenceClient = new MyServiceReferenceClient();

Я получил эту ошибку:

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

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

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

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

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

1 Ответ

2 голосов
/ 25 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...