如果我有一个由多个图层组成的应用程序,它定义为解决方案中的多个项目,可以让图层直接在上方/下方引用图层吗?或者,应该使用依赖注入来消除这种需求吗?在多层体系结构中,可以让相邻层相互引用吗?
我在建议一个更具体的问题,我问here,但我想要更多的一般性建议。
我该如何着手在VS2010中设置这样的项目?我需要一个第三个项目,以容纳DI东西(我使用Ninject)
编辑:例如
这里是我的两个层的一个例子。第一层具有IUnitOfWork接口,第二层具有实现所述接口的类。按照这种方式安装,除非第2层有对第1层的引用,否则该项目不会生成。我该如何避免这种情况?或者,我应该甚至不担心引用,因为这些图层是彼此相邻的,所以不要单独放置它?
1个
public interface IUnitOfWork
{
void Save();
}
2层
public DataContext : IUnitOfWork
{
public void Save()
{
SaveChanged(); //...
}
}
感谢您的回应。我已阅读福勒文章,这很棒。我想我的困惑源于假设如果一个图层实现另一个图层的接口,如果我没有从实现图层到接口所在图层的引用,如何构建解决方案? – stephen776
在单独的组件中提取接口,该组件将被所有图层引用并使用DI。 –
上面增加了一个例子 – stephen776