类库引用问题

我正在构建一个类库,并使用其默认名称空间作为“系统”。 假设我正在创建一个通用数据结构,例如PriorityQueue并将其放在System.Collections.Generic命名空间下。

现在,当我从另一个项目引用该库时,我再也看不到“System.Collections.Generic”命名空间下的PriorityQueue。 虽然该项目中引用了库,但我无法访问其中的任何类。

我的问题是mscorlib和System.dll共享类似的命名空间,但仍然可以访问程序集中的类,但为什么不能挖掘? 如果我在我的类库中的System.Collections.Generic命名空间下放置一个公共类并在项目中引用该库并使用“using System.Collections.Generic”之类的语句,那还为什么我不能在那里访问我的类呢?

这是我做过的实验,我知道在自定义类库中不鼓励使用System命名空间,但我想知道为什么在这种特殊情况下我无法访问我的类的原因?

请有人对此有所了解。

PS:上次我问过类似的问题,但说错了,所以人们被误解了,我没有得到答案。 这次我试图尽可能正确地说出来。 很抱歉对于这个误会。

使用“项目引用”而不是“程序集引用”时,似乎会出现此问题。

使用“assembly参考”。

这是一个糟糕的主意,我不愿意深入研究其根本原因。

更新

我猜测当你使用项目引用(来自你的系统命名空间项目)时,问题就出现了,因为构建不知道它应该从引用的项目中解析依赖项,而是尝试从其中一个程序集中解析它已被引用即System.dll。 它显然在System.dll中不存在。 如果您添加对dll的内置版本的直接引用,则构建将能够解析它。

我刚测试了一些代码,我可以在我自己的项目中扩展System命名空间,然后在同一个解决方案中从其他项目中调用新类。 我不知道你为什么不能这样做。