繁体   English   中英

如何防止访问未在ASP.NET Core中直接引用的项目

[英]How to prevent the access to projects that are not referenced directly in ASP.NET Core

这些是我的项目层:

.NET Core 2.0 Web Project: UILayer
.NET Standard Class library : BusinessLayer
.NET Standard Class library : DataAccessLayer

我将BusinessLayer的引用添加到UILayer,将DataAccessLayer的引用添加到BusinessLayer

因此,我希望这些层可以访问被引用的那些dll。 但是现在我看到UILayer可以访问DataAccessLayer了! 为什么? 我该如何预防呢? (我的意思是物理上不只是逻辑上)

似乎它是.NET Core中的新功能,.NET Framework 4.6.1类库没有相同的功能。 那么另一个问题是,为什么要将它添加到ASP.NET Core项目中? 有什么好处吗? 如果我想访问该项目,只需添加参考即可。

您可以指定在BusinessLayer项目的.csproj中,使用<ProjectReference><PrivateAssets>元素声明您不想在父项目中可见的资产。 在这里,您有关于此元素的其他信息

<ProjectReference Include="{path-of-your-referenced-DataAccessLayer}">
  <PrivateAssets>All</PrivateAssets>
</ProjectReference>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM