Visual Studio多项目解决方案问题

时间:2017-09-02 07:24:39

标签: c# asp.net visual-studio

我在VS 2017中有这个有多个项目的解决方案:

  • Example.DomainModels
  • Example.DataAccess
  • Example.Infrastructure
  • Example.Web

很好,我的Web项目引用了InfrastructureInfrastructure项目引用DataAccess以及DomainModels项目。解决方案工作正常。

但是,如果在我的Web项目中,如果我尝试访问DomainModels中的任何实体,我可以轻松访问该实体而不会出现任何错误,即使Web项目没有& #39; t对DomainModels

有任何引用

您能帮我理解这个项目参考的工作原理吗?是因为Web项目间接引用了DomainModels(Web - > Infrastructure - > DomainModels)?

感谢。

2 个答案:

答案 0 :(得分:1)

请调查洋葱架构:https://social.technet.microsoft.com/wiki/contents/articles/36655.onion-architecture-in-asp-net-core-mvc.aspx

域模型不应引用任何内容。为了实现这一目标;你应该调查依赖倒置。我最近在这里问了一个关于依赖倒置的问题:Execute code in a class library when you do not have a reference to that class library

如果您想从网络离开域层,那么您可以引入服务层。

答案 1 :(得分:1)

的确,根据您的意见,网站将引用所有其他项目

编译时,基础设施将附加引用数据访问和域模型命名空间,因此您可以从Web访问数据访问和域模型中存在的类型或命名空间,因为您从Web引用基础结构。