如果我没有在我的类中添加命名空间(vs.net 2008),我的类是在哪个命名空间下构建的?
更新的 奇怪的是,当我添加一个命名空间时,我似乎无法从我的用户控件中引用类方法。
如果我明确设置名称空间,并在我的控件中添加'using ...',我仍然看不到它!
这怎么可能?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
/// <summary>
/// Summary description for Globals
/// </summary>
public class Globals
{
public Globals()
{ }
public static string ConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;
}
}
}
我的控制:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MyStats : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
//etc.
答案 0 :(得分:4)
如果您没有提供命名空间,那么您的类型没有命名空间。请记住,命名空间在编译后没有任何意义。它们只是附加到您键入名称的开头,以创建一个更有可能是唯一的更长名称。
编辑:我认为您可能有两个单独的程序集,一个应该引用另一个程序集,但事实并非如此。如果两个项目在一个解决方案中,那么类查看器将显示所有项目中的所有类型,但这并不一定意味着ProjectA
引用ProjectB
。要使用ProjectB
中ProjectA
的类型,您需要确保存在项目引用。
答案 1 :(得分:1)
如你所说,该类没有任何命名空间,没有using子句就可以访问它。
命名空间是一种通过分类来对您的课程进行排序的功能,主要是根据他们的功能
修改强>
根据你的更新,我认为你的“全球”课程可能会因为全局::子句而引起麻烦...你是否介意改变课程名称以确定它是否有效?