引用命名空间,而相同的命名空间位于当前命名空间中

  • 本文关键字:命名空间 于当前 引用 c#
  • 更新时间 :
  • 英文 :


我有一个DLL I引用,其命名空间为

Model

与类是

Item

所以模型.项目是我试图参考的东西。

但是在我的项目中,我的命名空间为

Logic.Section

其中也包括在内

Logic.Model

下面有各种类。

因此,当我尝试引用Model.Item的DLL时,它不会让我这样做,因为它只会跳回到Logic.Model。

在这种情况下,我通常会重组我的命名空间,但是有没有办法告诉它从最高级别的命名空间开始并返回。

您可以使用命名空间别名

using Co = Company.Proj.Nested; 

http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx

或者在你的情况下,类似的东西

using M = Model

is there a way to tell it to start at the highest level namespaces and go back down.

using global::Model.Item;
这可能

发生在任何第三方 DLL、库中,通常我所做的是将命名空间命名为

using myModelInMyDll = Model.Item 

然后使用 myModelInMyDll

可以使用全局命名空间别名来强制命名空间解析从最高级别开始。因此,在Logic命名空间中

using Model; // resolves to Logic.Model
using global::Model; // resolves to Model.

如果有许多类和命名空间名称冲突,则应考虑重新设计命名策略。如果这是第三方库的结果(有时是这样),则可以为使用的类设置别名:

using MyModel = global::Model; //aliases the namespace, so use MyModel.Item
using MyItem = global::Model.Item; //aliases the class, so use MyItem

最新更新