2

我正在玩创建演示棱镜应用程序。我拥有的应用程序有一个 shell 项目和另一个具有 prism 服务和视图(和视图模型)的模块。(主要基于 Mike Taulty 的视频,但使用 WPF 而不是 silverlight)。

我设置了 prism-service 来调用我的网络服务。似乎一切都正确,但是当我调用此代码时:

 MyServiceReferenceClient myServiceReferenceClient = new MyServiceReferenceClient();

我收到了这个错误:

在 ServiceModel 客户端配置部分中找不到引用合同“MyServiceReference.IMyService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

我用谷歌搜索了这个错误,发现我需要将 app.config 的内容放入我的 shell 项目中才能正常工作。

我将该文件复制到我的 Shell 项目中,它工作得很好。

但我不喜欢这个。棱镜的想法是模块化。如果我必须引用模块中调用的所有 Web 服务,那么 shell 必须比它应该更了解每个模块的内部工作。

有没有办法在模块中调用 Web 服务,并且仍然具有模块(通过配置文件)的酷炫 Prism 优势,并且区域是 shell 唯一需要知道的事情?

4

1 回答 1

2

这篇文章以与您相同的方式解决您的问题: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 知道它不需要知道的有关模块的信息。

于 2010-10-25T12:25:06.783 回答