在C#中有没有办法限制对间接引用库/DLL的调用?
我有一个项目是在3层架构设计。为了保持简单,我将简化我的案例,采用传统的三层结构,表示->业务逻辑->DAL 我在3个不同的项目中有这3层,因此我最终将有1个启动可执行文件和2个DLL。但是,我发现我可以从表示层调用DAL层,即使DAL层项目没有直接被表示层项目引用在C#中有没有办法限制对间接引用库/DLL的调用?,c#,.net-core,dll,n-tier-architecture,dll-reference,C#,.net Core,Dll,N Tier Architecture,Dll Reference,我有一个项目是在3层架构设计。为了保持简单,我将简化我的案例,采用传统的三层结构,表示->业务逻辑->DAL 我在3个不同的项目中有这3层,因此我最终将有1个启动可执行文件和2个DLL。但是,我发现我可以从表示层调用DAL层,即使DAL层项目没有直接被表示层项目引用 我可以知道我是否有办法限制这些间接引用?或者我可以确保其他开发人员不能打这样的电话吗?呈现-项目应该只引用业务逻辑-项目 BusinessLogic应仅引用DAL 我相信Presentation引用了BusinessLogic和DA
我可以知道我是否有办法限制这些间接引用?或者我可以确保其他开发人员不能打这样的电话吗?
呈现
-项目应该只引用业务逻辑
-项目
BusinessLogic
应仅引用DAL
我相信Presentation
引用了BusinessLogic
和DAL
确保Presentation.csproj
-文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
... (more stuff) ...
<ItemGroup>
<ProjectReference Include="..\BusinessLogic\BusinessLogic.csproj" PrivateAssets="All" />
</ItemGroup>
</Project>
... (更多东西)。。。
并且不包含对DAL项目的引用。
呈现
-项目应仅引用业务逻辑
-项目
BusinessLogic
应仅引用DAL
我相信Presentation
引用了BusinessLogic
和DAL
确保Presentation.csproj
-文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
... (more stuff) ...
<ItemGroup>
<ProjectReference Include="..\BusinessLogic\BusinessLogic.csproj" PrivateAssets="All" />
</ItemGroup>
</Project>
... (更多东西)。。。
并且不包含对DAL项目的引用。是的,我记得这是.NET Framework中的行为。。。我不知道为什么我可以从.NET Core的
表示层
中引用DAL
。我确信我不会得到表示项目
参考DAL
如果您尝试在表示层中从DAL实例化一个类,那么如果您尝试(并且您的项目引用正确),它将无法编译。但我相信VisualStudio和Rider等公司对他们认为的“问题”有“快速修复”功能,因此您可以轻松添加对DAL-project的引用。原因似乎已在中说明,但仍然感谢您的帮助!是的,我记得这是.NET Framework中的行为。。。我不知道为什么我可以从.NET Core的表示层
中引用DAL
。我确信我不会得到表示项目
参考DAL
如果您尝试在表示层中从DAL实例化一个类,那么如果您尝试(并且您的项目引用正确),它将无法编译。但我相信VisualStudio和Rider等公司对他们认为的“问题”有“快速修复”功能,因此您可以轻松添加对DAL-project的引用。原因似乎已在中说明,但仍然感谢您的帮助!看,看。