Silverlight 4.0 Silverlight 4&x2B;WCF RIA服务+;Prism v4为什么我需要shell上的模块依赖关系?

Silverlight 4.0 Silverlight 4&x2B;WCF RIA服务+;Prism v4为什么我需要shell上的模块依赖关系?,silverlight-4.0,dependency-injection,unity-container,wcf-ria-services,prism-4,Silverlight 4.0,Dependency Injection,Unity Container,Wcf Ria Services,Prism 4,我正在尝试创建一个WCF RIA Services+Prism v4应用程序,其中的项目布局如下: 客户端 模块(目前只有一个): Project.Modules.Clients(包含指向my Project.Web应用程序的WCF RIA服务链接,并依赖于服务器端Project.Web项目) 壳牌项目 Shell(包含指向my Project.Web应用程序的WCF RIA services链接,并依赖于Project.Modules.Client模块和Project.Web项目。还包含继承的

我正在尝试创建一个WCF RIA Services+Prism v4应用程序,其中的项目布局如下:

客户端

模块(目前只有一个):

Project.Modules.Clients(包含指向my Project.Web应用程序的WCF RIA服务链接,并依赖于服务器端Project.Web项目)

壳牌项目

Shell(包含指向my Project.Web应用程序的WCF RIA services链接,并依赖于Project.Modules.Client模块和Project.Web项目。还包含继承的UnityBookTrapper中使用的模块目录XAML文件)

服务器端

主Web项目

Web(包含我的WCF RIA服务、数据模型等)

问题

为什么我需要引用shell项目中的模块项目?这从本质上说不是违背了动态模块初始化的目的吗?我尝试了以下几个示例项目和博客文章,包括:

以及随附的博客帖子:

以及David的MSDN博客文章:

当我不包含引用时会发生什么情况是这样的例外:

Resolution of the dependency failed, type = "Project.Modules.Clients.ClientsModule", name = "(none)". Exception occurred while: while resolving. Exception is: InvalidOperationException - The current type, Microsoft.Practices.Prism.Regions.IRegionManager, is an interface and cannot be constructed. Are you missing a type mapping?
因此,很明显,Unity似乎无法了解模块,尽管我已经三次检查了引导程序和模块目录文件

如果有人指出我可能做错了什么,要求从shell中引用我的模块,我将不胜感激


谢谢。

你说得对,这个问题涉及到我的.xap文件。我的Web应用程序的Silverlight项目链接是如何被破坏并把一切搞砸的


一旦我修正了链接,这就解决了我的所有问题。

你能发布模块目录中的示例吗…仅供参考,我继承IModule的类名实际上是ClientsModule模块模块xap的名称是什么?是否确实是Project.Modules.Clients.xapYes,我在Web项目的ClientBin文件夹下看到了Project.Modules.Clients.xap。结果表明,我的shell的App.xaml codebehind从未执行过,并且正在使用默认的UnityBookTrapper。我似乎无法确定为什么我的shell的codebehind没有执行,但我的shell仍然显示出来?起初我以为这是构建顺序,但事实并非如此。