【问题标题】:How to reference projects in .Net Core如何在 .Net Core 中引用项目
【发布时间】:2016-06-07 22:52:42
【问题描述】:

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

  • ProjectA(类库 - .NET Standard 1.5)
  • ProjectB(类库 - .NET Standard 1.5)
  • ProjectConsole(控制台应用程序 - netcoreapp1.0)

ProjectB 引用 ProjectAProjectConsole 引用 ProjectB

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

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

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

var projectA = new Project.Class1();

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

但我不想这样,问题是,有办法防止吗?

【问题讨论】:

  • projectA 是变量还是类?
  • 当您说“发生这种情况是因为 ProjectB 引用了 ProjectA”时,您在说什么。
  • 不清楚您要防止什么。您不想让 ProjectConsole 访问 ProjectB 吗?
  • @AsifShiraz projectA 是名称空间。
  • @NateBarbettini 我试图阻止projectA的projectConsole实例公共类,只是projectB的公共类

标签: c# .net .net-core


【解决方案1】:

不,你不能阻止它。

如果 ProjectConsole 依赖于 ProjectB,并且 ProjectB 引用 ProjectA,那么 ProjectConsole 将隐式访问 ProjectA 的公共成员。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2017-11-22
    相关资源
    最近更新 更多