我在VS 2017中有这个有多个项目的解决方案:
很好,我的Web
项目引用了Infrastructure
和Infrastructure
项目引用DataAccess
以及DomainModels
项目。解决方案工作正常。
但是,如果在我的Web
项目中,如果我尝试访问DomainModels
中的任何实体,我可以轻松访问该实体而不会出现任何错误,即使Web
项目没有& #39; t对DomainModels
。
您能帮我理解这个项目参考的工作原理吗?是因为Web项目间接引用了DomainModels(Web
- > Infrastructure
- > DomainModels
)?
感谢。
答案 0 :(得分:1)
域模型不应引用任何内容。为了实现这一目标;你应该调查依赖倒置。我最近在这里问了一个关于依赖倒置的问题:Execute code in a class library when you do not have a reference to that class library
如果您想从网络离开域层,那么您可以引入服务层。
答案 1 :(得分:1)
的确,根据您的意见,网站将引用所有其他项目
编译时,基础设施将附加引用数据访问和域模型命名空间,因此您可以从Web访问数据访问和域模型中存在的类型或命名空间,因为您从Web引用基础结构。