这些是我的项目图层:
.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项目中?有什么好处吗?如果我想访问项目,我只需添加引用。
答案 0 :(得分:1)
您可以在BusinessLayer项目的.csproj中指定,使用<PrivateAssets>
中的<ProjectReference>
元素来声明您不希望父项目可见的资产。
Here you have additional info for this element
<ProjectReference Include="{path-of-your-referenced-DataAccessLayer}">
<PrivateAssets>All</PrivateAssets>
</ProjectReference>