我正在使用N层架构在iOS,Android和C#ASP.NET MVC项目上共享尽可能多的代码。
我已经将我的解决方案分成几层:
我已经从我的DAL中分离了我的BLL,因此BLL不知道DAL。它由PL注入。那是因为我想分享我的BLL,因为它在几个平台上都是一样的。这次注入的缺点是我的PL需要参考我的DAL。在这种情况下可能需要,因为iOS和Andriod不支持EF到本地数据库,至少不是我所知道的。
我不确定是否正确行事。另一种方法是创建一些引用我的BLL的web服务。该解决方案的缺点是需要互联网连接。我宁愿不把它作为这个项目的要求。
目前我怀疑自己是左转还是右转。有没有人有任何提示或知道一些关于这个主题的好文章?
答案 0 :(得分:1)
听起来你手动注入依赖项而不是使用IoC容器,这就是为什么表示层在调用BLL时需要传递对DAL的引用。
在IoC容器中注册您的类型并使用它来实例化BLL,它将自动注入对DAL的引用。这样,只有设置IoC容器的引导代码才需要知道特定的类型。
您有很多关于您使用的特定IoC容器的选项。我最近将大量现有代码集成到使用Unity的移动应用程序中,效果很好。