2009-08-10 80 views
1

在我的WAP項目中,每個.aspx的代碼隱藏和設計器共享相同的命名空間。例如,我的Main.Master.cs和Main.designer.cs默認都在OurCompany.Web名稱空間中。歧義參考

當我去到另一個.aspx頁,並使用下面,我得到一個「不明確的引用」錯誤,因爲它不能決定,如果我說的是我的代碼隱藏母版頁或設計文件

<%@ MasterType TypeName="OurCompany.Web.Main" %> 

但默認情況下這是VS創建.aspx頁面的方式,所以我真的應該關心它嗎?

回答

2

設計器文件全部標記爲「部分」類,因此它們不會被編譯爲它們自己的類型。

我的猜測是你確實有兩個類叫做「OurCompany.Web.Main」。像Reflector這樣的工具可以讓你瀏覽你的DLL,所以你可以肯定地說。

+0

我沒有2個類,我的所有代碼在類後面都出現這個問題。我想知道我是否需要清理我的解決方案 – PositiveGuy 2009-08-11 03:47:33

1

我猜你有一個母版頁和Web窗體頁面上的代碼背後的類相同的名稱。這會阻止你的網站正常工作(如果它工作的話)。

我會通過我的aspx.cs文件並尋找類名main(find應該在這裏工作)。我敢打賭你會找到兩個名字相同的文件。你將不得不將其中的一個改爲別的。只要確保您還要更改.aspx頁面中的Inherits和.designer.cs類名稱。

+0

但每個.aspx.cx都顯示了雙重類型。不只是主人 – PositiveGuy 2009-08-11 03:41:22

+0

奇怪的原因,我只是再次設置這個相同的解決方案結構,現在問題沒有了。 – PositiveGuy 2009-08-11 03:45:55

2

這只是發生在我身上,你的問題是JIT編譯在臨時目錄中創建程序集的臨時「副本」。

確保每個名稱空間/部分類聲明都是「緊密的」,檢查不正確的類名稱,錯誤的名稱空間。

問題「剛剛離開」對我來說也是如此。重新創建或清理解決方案可能會做到這一點。希望我可以更有幫助,但是要清理源代碼,無論是手動還是右鍵單擊菜單可能都有幫助。