我知道我在这里忽略了一些非常简单的事情。
我正在使用Visual Studio 2008并创建了一个ASP.NET 3.5项目和解决方案。我在我的解决方案中添加了另一个项目,一个类库。我添加了对类库的引用。现在,当我单击类库的属性时,默认命名空间设置为“HRCommon”,这是正确的。
现在出于某种原因,从我的ASP.NET应用程序中,它会自动导入HRCommon命名空间。因此,当我想从类库中引用一个类时,我只需要输入类名。我希望必须指定整个名称,例如HRCommon.<ClassName>
而不是<ClassName>
。
有人告诉我我在这里俯瞰的是什么吗?语言是C#,顺便说一句。
答案 0 :(得分:2)
你的ASP .Net代码在哪个命名空间?
它可能在HRCommon里面。
如果您在嵌套命名空间中编写代码,它将自动导入所有父命名空间(例如,System.Windows.Forms
中的代码不需要导入System.Windows
和System
)
要防止这种情况,请将库或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
元素(默认值不是),那么这显然不是问题。