当从类访问属性时,引用为NULL
本文关键字:引用 NULL 属性 访问 | 更新日期: 2023-09-27 18:01:41
我有以下类:
public static class AppUser
{
public static int TestNum
{
get { return 999; }
}
public static BO.User User
{
get
{
BO.User _user;
_user = (BO.User)System.Web.HttpContext.Current.Session["User"];
if (_user == null)
{
_user = new BO.User();
_user = DLL.Security.GetUserByGuid(System.Web.HttpContext.Current.Request.Cookies["UID"].Value.ToString());
System.Web.HttpContext.Current.Session["User"] = _user;
}
return _user;
}
}
}
在aspx页面的代码隐藏中,这两行都很好:
Response.Write(BLL.BO.AppUser.TestNum.ToString() + "<br>");
Response.Write(BLL.BO.AppUser.User.ID.ToString());
在一个类中,这行可以使用:
int t = BLL.BO.AppUser.TestNum;
但是下面这行给了我一个空引用:
BLL.BO.User u = BLL.BO.AppUser.User;
如有任何帮助,不胜感激
似乎这一定是引起问题的行:
_user = DLL.Security.GetUserByGuid(System.Web.HttpContext.Current.Request.Cookies["UID"].Value.ToString());
在那一行中,除了"Request.Cookies["UID"],似乎没有任何东西可以为空。如果我第一次访问您的站点,我不希望设置"UID",所以如果您第一次请求该页面,您将获得NullReferenceException,这是有意义的。
事实证明,由于我调用该方法试图从web服务访问AppUser类,因此它没有启动会话。我添加了[WebMethod (EnableSession = true)]到我的web方法,它现在正在工作。感谢大家的回复。