2009-02-12 47 views
0

有沒有辦法告訴.net從命名空間樹的搜索命名空間?如何確保.Net始終從命名空間樹的根目錄搜索命名空間?

說我有這兩條,完全獨立,命名空間:

Apple.Orange.Banana 
Orange.Grape.Peach 

假設他們來自不同的程序員和「橙色」,在每一個完全是巧合來了。

如果我在「Apple.Orange.Banana」內部,並且我嘗試導入(或引用)「Orange.Grape.Peach」.Net事情,我試圖從「Apple」中的「Orange」 .Orange.Banana」。

我該如何告訴它「從看,而不是我現在的位置。」這將是偉大的:

~Orange.Grape.Peach 

但是,唉,那不存在。

我知道你們中的一些人會說我應該只是更好地規劃命名空間,但是當我使用來自兩個預定義名稱空間的代碼並且我無法更改時會發生什麼情況,並且他們會發生衝突,正如我上面提到的?

+0

你爲什麼說它不存在?看到斯科特的回答... – flq 2009-02-12 21:21:19

回答

6

您是否嘗試過使用全球::決議範圍是什麼?例如,如果您有以下幾點:

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

另外,您得到取決於命名空間是進口的命名空間聲明的外部或內部不同的分辨率,所以

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

可以提供比不同的分辨率規則:

namespace MyLinq 
{ 
    using System.Linq; 

    // ... 
} 
+0

非常好。謝謝。 – Deane 2009-02-12 22:29:54

3

你可以別名根橙這樣的:

using RootOrange = Orange; 

然後,你可以這樣做:

RootOrange.Grape.Peach