【发布时间】:2011-01-15 11:15:52
【问题描述】:
我有一个 VS2008 解决方案,有 2 个项目,WebUI 和 Domain; WebUI 引用域
WebUI项目中的Root Namespace为:MyCompany.MyProjectName.WebUI
域项目中的根命名空间是空白的。 (所有类的命名空间都是手动声明的)
所以一切正常,直到我尝试通过完全限定的路径引用 Domain 中的类: MyCompany.MyProjectName.Domain.EntityClasses.SomeClassName
VS 无法找到该类。 但是,如果我在代码文件的顶部这样做: 导入 MyCompany.MyProjectName.Domain.EntityClasses
....然后它可以看到它。 (就像 SomeClassname,而不是完全限定的名称)
这有意义吗?
所以,然后我清除了我的 WebUI 根命名空间,瞧,完全限定的声明就可以工作了。但是,这样做似乎会使我在我的页面上注册的所有用户控件无效。似乎解决这个问题的唯一方法是在每个用户控件的代码隐藏中,手动添加 MyCompany.MyProjectName.WebUI 的命名空间 ...这可能是有道理的,因为页面的命名空间可能仍然保留了根命名空间值。但是,如果我要创建一个全新的 aspx 页面并在其上放置一个用户控件(这是在手动添加命名空间之前),那么即使该页面也无法正确注册它。然而,uwer 控件在设计视图中正确呈现....所以 VS UI 似乎能够正确解决它,但编译器似乎不能。
因此,据我所知,我至少可以通过将用户控件手动包装在适当的命名空间中来使事情正常工作。为什么这对于没有指定命名空间的 aspx 页面来说是必要的,以查看用户控件,似乎没有意义。
我误解了一些基本原则吗??
【问题讨论】:
标签: asp.net vb.net namespaces