假设我有这个解决方案结构:
ProjectB 引用 ProjectA , ProjectConsole 引用 ProjectB
如果在project.json中我声明了类似的内容:
"dependencies": {
"ProjectA": "1.0.0-*",
...
},
然后在ProjectConsole中可以执行以下操作:
var projectA = new Project.Class1();
这是因为ProjectB引用了ProjectA。
但我不想这样,问题是,有办法防止这种情况吗?
答案 0 :(得分:1)
不,你无法阻止它。
如果 ProjectConsole 依赖于 ProjectB , ProjectB 引用 ProjectA ,则ProjectConsole将隐式访问ProjectA的公众成员。
如果您确实想要阻止这种情况,可以使ProjectA的成员internal
并使用InternalsVisibleTo
属性。但这不是一个好的模式 - 如果B依赖A,它应该依赖于A的公共成员,或者它们应该合并到一个库中。