命名空间被自动导入

时间:2009-09-30 00:20:34

标签: c# asp.net vb.net visual-studio-2008

我知道我在这里忽略了一些非常简单的事情。

我正在使用Visual Studio 2008并创建了一个ASP.NET 3.5项目和解决方案。我在我的解决方案中添加了另一个项目,一个类库。我添加了对类库的引用。现在,当我单击类库的属性时,默认命名空间设置为“HRCommon”,这是正确的。

现在出于某种原因,从我的ASP.NET应用程序中,它会自动导入HRCommon命名空间。因此,当我想从类库中引用一个类时,我只需要输入类名。我希望必须指定整个名称,例如HRCommon.<ClassName>而不是<ClassName>

有人告诉我我在这里俯瞰的是什么吗?语言是C#,顺便说一句。

2 个答案:

答案 0 :(得分:2)

你的ASP .Net代码在哪个命名空间?

它可能在HRCommon里面。

如果您在嵌套命名空间中编写代码,它将自动导入所有父命名空间(例如,System.Windows.Forms中的代码不需要导入System.WindowsSystem

要防止这种情况,请将库或ASP .Net项目移动到其他名称空间。


或者,您可能没有库中的namespace语句。

VS中的Default Namespace选项仅用于在新C#源中生成namespace块。 编辑:为了澄清,编译器根本不使用默认命名空间设置。它仅由Visual Studio用于在新的源文件中自动插入namespace块。

检查库中的源文件,确保所有类都在命名空间HRCommon内定义。

例如:

namespace HRCommon {
    public class MyClass {
        //...
    }
}

答案 1 :(得分:0)

编辑:问题是您没有将库代码放在命名空间中(如我的第一个答案的下半部分所述);我要离开这里作为参考。

检查HRCommon是否在Web.config中的默认命名空间列表中。 (可能不是,但没有伤害检查)。

具体来说,请查看system.web/pages/namespaces。如果您的Web.config没有namespaces元素(默认值不是),那么这显然不是问题。