无法进入的公共课程

时间:2013-06-12 11:15:55

标签: c# asp.net class inheritance

我正在使用公共LoginContext类来管理我的网络应用中的用户登录。

不幸的是,即使我公开声明了LoginContext类,我在Login.aspx.cs上的部分类登录似乎无法访问它。

我的代码如下:

// ~/App_Code/LoginContext.cs
namespace stman
{
    public class LoginContext
    {

    }
}

// ~/Login.aspx.cs
namespace stman
{
    public partial class Login : System.Web.UI.Page
    {
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            LoginContext log = new LoginContext(); // error is here
        }
    }
}

我实例化LoginContext的行上出现的错误如下所示:

  

找不到类型或命名空间名称“LoginContext”(您是否缺少using指令或程序集引用?)

当我尝试为LoginContext生成一个新类时,它会进入Web应用程序的根文件夹,在该文件夹中它无法再访问LoginContext中需要的公共数据库类。

我不知道是什么导致了所有这些问题,但根据我在过去18个月中所做的专业知识,他们现在不应该存在......

有人可以帮忙清理一下吗?具体来说,我想知道:

  1. 我做错了什么
  2. 为什么这是错的
  3. 我可以解决哪些问题?
  4. 提前致谢!

    修改
    我看了一下,似乎既没有〜/ App_Code / Database.cs中的Database类,也没有〜/ App_Code / LoginContext.cs中的LoginContext类可以访问页面 - 或者网站中的任何页面。

4 个答案:

答案 0 :(得分:2)

在LoginContext.cs属性中,将其标记为BuildAction = Compile。

答案 1 :(得分:0)

当这些类位于不同的项目中时,您可以实现此行为。

如果这是真的,那么您应该从项目名称开始使用该类的完整路径 ProjectName.stman.LoginContext

答案 2 :(得分:0)

尝试使用构造函数

 namespace stman
{
// Database is a class that handles the sql queries and such
public class LoginContext : Database
{
    public LoginContext () : base("Name=LoginContext")
    {

    }
}
}

答案 3 :(得分:0)

从我从App_Code中读取的内容可能与网站项目和Web应用程序不同。我想知道你正在做什么样的项目?一个可能的解决方案是在Web应用程序项目中创建此项目,此Link可以帮助您创建此项目:

Source