我发布了这个问题,仍然没有得到答案,所以我想我会链接到问题的以下视频文件...抱歉,我试图upload the video到videos.yahoo.com,但降级后的视频是不可见的。所以这是我网站上托管的direct link to the avi file。
问题概要
我有一个控件项目...... GoodMins.MeetingMgr.Winforms.Controls。
它有一个项目引用GoodMins.MeetingMgr.BizObjects。
在任何GoodMins.MeetingMgr.Winforms.Control的代码文件中我都可以
*添加导入到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.MeetingMgr.BizObjects.Attendees下有一个小的squiggley行,警告“类型'GoodMins.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。
FYI对象浏览器,在“查看命名空间”模式下,显示GoodMins.MeetingMgr.BizObjects命名空间,不显示MeetingMgr.BizObjects命名空间。
最后一条信息。我在BizObject项目中执行命名空间的方法是从项目属性中删除命名空间声明,并在每个类文件周围放置一个显式的命名空间声明为“Namespace GoodMins.MeetingMgr.BizObjects”...“End Namespace”我很遗憾这样做和我有一天可能会改变它,但现在我仍然坚持它。
所以这里是我的问题的底线...为什么Visual Studio中内置的所有工具都想使用GoodMins.MeetingMrg.BizObjects的完整命名空间,但代码窗口中的intellisense无法识别完整命名空间,但会识别MeetingMgr.BizObjects的截断命名空间。
我看到了我知道的任何地方,看不出这个。
赛斯
答案 0 :(得分:1)
在VB中定义命名空间有点奇怪。一切都自动成为默认命名空间的一部分(在项目属性中定义)。添加命名空间语句时,不像在C#中那样添加默认命名空间。
例如,如果您的默认命名空间是GoodMins
,那么
Namespace MeetingMgr
End Namespace
实际上会被翻译为GoodMins.MeetingMgr
。如果将名称空间定义为
Namespace GoodMins.MeetingMgr
End Namespace
那么这与GoodMins.GoodMins.MeetingMgr
相同。