C# 类库参考问题

C# 类库参考问题,c#,.net,namespaces,C#,.net,Namespaces,我正在构建一个类库,并将其默认名称空间用作“System”。假设我正在创建一个通用数据结构,比如PriorityQueue,并将其放在System.Collections.generic命名空间下 现在,当我从另一个项目引用该库时,我再也看不到“System.Collections.Generic”命名空间下的PriorityQueue了。虽然该库在该项目中被引用,但我无法访问其中的任何类 我的问题是mscorlib和System.dll共享相似的名称空间,但仍然可以访问来自这两个程序集的类,但

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

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

我的问题是mscorlib和System.dll共享相似的名称空间,但仍然可以访问来自这两个程序集的类,但为什么不能访问我的类?如果我在类库中的System.Collections.Generic命名空间下放置一个公共类,并在项目中引用该类库,并使用类似“using System.Collections.Generic”的语句,仍然无法访问该类库的原因是什么

这是我做的一个实验,我知道在自定义类库中不鼓励使用系统名称空间,但我想知道为什么在这种特殊情况下无法访问我的类

请有人解释一下


注:上次我问了类似的问题,但把它放错了,所以人们误解了,我没有得到答案。这一次,我尽可能地把它说对了。对不起,误会了

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

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

使用“程序集引用”

这是一个如此糟糕的想法,以至于我不愿意深入探究其背后的原因

更新


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

如果您尝试将类置于自定义命名空间下,它是否工作正常?当然可以。正如我所说的,我正在做一些关于这个想法的实验。项目输出DLL的名称是什么?这与他的另一个问题完全相同。他不喜欢他得到的答案:@John我在PS中已经提到,我把问题放错了,这就是为什么我得到了错误的答案。。当我对你的另一个问题发表评论时,请思考一下如果每个人都试图做你正在做的事情会发生什么-混乱。微软可以使用这种技术,因为他们使用自己的名称空间。“系统”命名空间不是您的。请使用您自己的名称空间。