如何在 .Net Core 中引用项目

How to reference projects in .Net Core

假设我有这个解决方案结构:

其中 ProjectB 引用了 ProjectAProjectConsole 引用了 项目B

如果在 project.json 中我声明类似的内容:

"dependencies": {
    "ProjectA": "1.0.0-*",
    ...
  },

然后在 ProjectConsole 中可以执行如下操作:

var projectA = new Project.Class1();

发生这种情况是因为 ProjectB 引用了 ProjectA。

但是我不想要这个,问题是,有什么办法可以防止吗?

不,你无法阻止它。

如果 ProjectConsole 依赖于 ProjectB,并且 ProjectB 引用 ProjectA ,然后 ProjectConsole 将隐式访问 ProjectA 的 public 成员。

如果您真的想防止这种情况发生,您可以使 ProjectA 的成员 internal 并使用 InternalsVisibleTo 属性。但这不是一个好的模式——如果 B 依赖 A,它应该依赖 A 的 public 成员,或者它们应该合并到一个库中。