2009-10-08 129 views
0

我工作的ASP.NET Web應用程序使用.NET 3.5和遇到了以下問題:命名空間問題

我有一個類的命名空間X.Web.Controls.Core它引用的類Utils下工作命名空間X.X2.components.util

我得到Utils在命名空間X.Web.Controls.Utils 這不應該是可能的,因爲我找不到任何引用從我工作的類名稱空間已經定義的錯誤。有任何想法嗎?

+0

您能否提供編譯器錯誤信息? – 2009-10-08 07:16:28

回答

6

我不能真正看到應該有問題,除非你有一個using語句引用它的某個地方。請注意,名稱空間中的代碼將隱式地「查看」相同名稱空間中的類,即使它們是在別處定義的。

不管怎麼說,你可以通過改變類名(僅適用於當前的代碼文件)解決您的問題:

using X2Utils = X.X2.components.util.Utils; 

的類將被命名爲您的代碼X2Utils。或者你可以爲它命名的快捷方式:

using X2util = X.X2.components.util; 

現在,你可以參考使用X2util.Utils類。

+0

感謝您的回覆。實際上我有幾百個班,我必須通過並添加別名。我認爲考慮到大量的類,生病嘗試將Utils類重命名爲與任何名稱空間(例如'Util')不衝突的東西。 – CodeSpeaker 2009-10-08 07:29:31

+0

儘管你也可以別名命名空間,但我明白你的觀點。是的,我同意你應該爲你的班級使用不同的名字。 「Util」是一個非常廣泛的名稱,並沒有比「AClass」更具描述性。 – Blixt 2009-10-08 07:35:00

1

您正在使用X.Web.Controls.Core,它是X.Web.Controls的子名稱空間。這意味着X.Web.Controls中的名稱空間Utils隱式可見。

解決使用Blixt建議的別名。