2009-07-03 30 views
0

我發佈了這個問題,仍然沒有得到答案,所以我想我會鏈接到以下視頻文件的問題...對不起,我試圖upload the video到videos.yahoo.com,但降級的視頻是不可查看的。所以這裏是我的網站上託管的direct link to the avi file命名空間瀏覽在工具中正常工作,並作爲進口,但不在代碼窗口(除進口行)

問題概要 我有一個控件項目... GoodMins.MeetingMgr.Winforms.Controls。 它具有GoodMins.MeetingMgr.BizObjects的項目引用。 在GoodMins.MeetingMgr.Winforms.Control的任何代碼文件中,我都可以 *將一個Imports添加到GoodMins.MeetingMgr.BizObjects,並且intellisense成功瀏覽命名空間路徑。 *在同一文件中在CLASS聲明中,我無法再成功瀏覽GoodMins.MeetingMgr.BizObjects命名空間。
*但我可以瀏覽MeetingMgr.BizObjects(應該是一個無效的命名空間)。它找不到Goodmins命名空間。

問題是,當我在設計器中對文件進行更改時... Visual Studio在設計器文件中重新生成代碼並使用正確的名稱空間。但是由於Visual Studio無法識別該名稱空間,因此會發生編譯錯誤。

幫助...我在這個今晚花了大約3個小時無濟於事。

老問題與更多細節。

的問題

我剛剛注意到在我的項目一些奇怪的事情,這是造成一些編譯時間的問題。如果你想得到底線問題,請閱讀問題底部的粗體文字。閱讀所有的行爲細節。

我有控制項目,並在該項目中引用另一個bizobjects項目。

我使用我的控制項目的數據源視圖來創建對象以放入控件並創建AttendeesBindingSource。所有這一切都很好。

在編譯的時候雖然我在控制的DESIGNER文件得到一個錯誤:

Me.AttendessBindingSource.DataSource = GetType(GoodMins.MeetingMgr.BizObjects.Attendees) 

這有下與警告「類型「GoodMins GoodMins.MeetingMgr.BizObjects.Attendees小squiggley線。 MeetingMgr.BizObjects.Attendees'未定義「

稍微更多的信息 我已經想出瞭如何解決這個錯誤。

我只是刪除GoodMins。從參考。換句話說......到VS我可以從

Me.AttendessBindingSource.DataSource = GetType(GoodMins.MeetingMgr.BizObjects.Attendees) 

上述行更改爲

Me.AttendessBindingSource.DataSource = GetType(MeetingMgr.BizObjects.Attendees) 

,我可以編譯。當我對控件進行一些更改時,將恢復代碼,並且我無法再次編譯。

僅供參考數據源視圖窗口顯示GoodMins.MeetingMgr的完整名稱空間。作爲父母的BizObjects我想添加

僅供參考如果我嘗試添加一個Imports語句(這是一個vb.net項目),Intellisense將不會找到該項目GoodMins.MeetingMgr.BizObjects。但它會找到項目MeetingMgr.BizObjects。

僅供參考對象瀏覽器在「視圖命名空間」模式下顯示GoodMins.MeetingMgr.BizObjects命名空間並且不顯示MeetingMgr.BizObjects命名空間。

最後一條信息。我在BizObject項目中進行命名空間的方式是從項目屬性中刪除命名空間聲明,並將每個類文件周圍的顯式命名空間聲明命名爲「Namespace GoodMins.MeetingMgr.BizObjects」...「End Namespace」我很遺憾地這樣做,有一天我可能會改變它,但現在我堅持不懈。

因此,這裏是我的問題的底線......爲什麼Visual Studio中內置的所有工具都想使用GoodMins.MeetingMrg.BizObjects的完整名稱空間,但代碼窗口中的智能感知無法識別完整名稱空間,但會識別MeetingMgr.BizObjects的截斷名稱空間。

我已經看到無處不在,我知道看,無法找出這一個。

Seth

+0

一點點的數據添加到我的問題。該項目的AssemblyName與命名空間不同。 AssemblyName是MeetingMgr.BizObjects.dll 是嗎? Seth – 2009-07-03 18:50:18

+0

劃傷最後的評論。大會名稱是MeetingManager.BizObjects.dll不MeetingMgr .... Seth – 2009-07-03 18:53:40

回答

1

在VB中定義名稱空間有點奇怪。一切都自動成爲默認名稱空間的一部分(在項目屬性中定義)。添加命名空間語句時,不像在C#中那樣添加默認名稱空間。

例如,如果您的默認命名空間是GoodMins然後,

Namespace MeetingMgr 
End Namespace 

實際上會被翻譯成GoodMins.MeetingMgr。如果您將名稱空間定義爲

Namespace GoodMins.MeetingMgr 
End Namespace 

那麼這將與GoodMins.GoodMins.MeetingMgr相同。