我正在玩创建一个演示棱镜应用程序。我的应用程序有一个shell项目和另一个模块,它有一个prism服务和一个视图(和一个视图模型)。 (主要基于Mike Taulty的视频,但在WPF而不是Silverlight中)。
我设置了prism-service来调用我的Web服务。似乎所有设置都正确,但是当我调用此代码时:
MyServiceReferenceClient myServiceReferenceClient = new MyServiceReferenceClient();
我收到了这个错误:
无法在ServiceModel客户端配置部分中找到引用合同“MyServiceReference.IMyService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。
我搜索了错误,发现我需要将app.config的内容放入我的shell项目中才能正常工作。
我将该文件复制到我的Shell项目,它运行得很好。
但我不喜欢这个。棱镜的想法是模块化的。如果我必须引用模块中调用的所有Web服务,那么shell必须更多地了解每个模块的内部工作方式。
有没有办法在模块中调用Web服务,并且仍然具有很酷的Prism模块优势(通过配置文件)和区域是shell需要了解的唯一内容?
答案 0 :(得分: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知道它不需要了解模块的信息。