您如何确保.Net始终从命名空间树的根目录中搜索命名空间?

时间:2009-02-12 21:07:16

标签: c# namespaces

有没有办法让.Net从命名空间树的 root 中搜索命名空间?

假设我有两个完全独立的命名空间:

Apple.Orange.Banana
Orange.Grape.Peach

假设他们来自不同的程序员,每个人中的“橙色”完全是巧合。

如果我在“Apple.Orange.Banana”里面,我试图导入(或引用)“Orange.Grape.Peach”.Net的东西我试图从“Apple”中的“Orange”中搜索。 Orange.Banana”。

我该怎么说呢,“从 root 看,而不是我现在所处的位置。”这会很棒:

~Orange.Grape.Peach

但是,唉,这不存在。

我知道你们中的一些人会说我应该更好地规划命名空间,但是当我使用来自两个预定义的命名空间的代码我无法改变的代码时会发生什么,并且它们如我上面提到的那样冲突?

2 个答案:

答案 0 :(得分:6)

您是否尝试过使用global :: resolution范围?例如,如果您有以下内容:

private global::Orange.Grape.Peach.classname x;

此外,根据名称空间是在名称空间声明之外还是在内部导入,您可以得到不同的分辨率,所以

using System.Linq;
namespace MyLinq 
{
   // ...
}

可以提供不同的解决规则:

namespace MyLinq 
{
   using System.Linq;

   // ...
}

答案 1 :(得分:3)

您可以像这样对根橙色进行别名:

using RootOrange = Orange;

然后你可以这样做:

RootOrange.Grape.Peach