我正在尝试创建一个 WCF RIA Services + Prism v4 应用程序,其中项目的布局如下:
客户端
模块(目前只有一个):
Project.Modules.Clients(包含指向我的 Project.Web 应用程序的 WCF RIA 服务链接,并且依赖于服务器端 Project.Web 项目)
壳牌项目
Project.Shell(包含指向我的 Project.Web 应用程序的 WCF RIA 服务链接,并且依赖于 Project.Modules.Client 模块和 Project.Web 项目。还包含在我继承的 UnityBootstrapper 中使用的模块目录 XAML 文件)
服务器端
主要网络项目
Project.Web(包含我的 WCF RIA 服务、DataModel 等)
问题
为什么我需要从我的 shell 项目中引用模块项目?这不是本质上违背了动态模块初始化的目的吗?我尝试了几个示例项目和博客文章,包括:
http://telecosystems.codeplex.com
以及随附的博客文章:
http://bachelorthesis.zdechovan.com/prism-solution-based-on-the-business-application-template/
以及 David 的 MSDN 博客文章:
http://blogs.msdn.com/b/dphill/archive/2009/08/17/prism-and-net-ria-services.aspx
当我不包含参考时会发生什么是这样的例外:
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 中对我的模块进行这样的引用,我们将不胜感激。
谢谢。