System.NullReferenceException当检查!= null时

| 我正在使用ASHX处理程序,我希望处理程序检查Session!= null。
if (context.Session[\"Username\"] != null)
我得到这个错误指向这一行:   System.NullReferenceException:对象引用未设置为对象的实例。 有什么问题?     
已邀请:
if (context.Session[\"Username\"] != null)
您的处理程序是否执行
IRequiresSessionState
?否则,会话可能不可用。 从MSDN:   指定目标HTTP处理程序   需要读写权限   会话状态值。这是一个标记   接口,没有任何方法。     
像这样使用它。封装对象之一可能已经为空:
if (context != null)
  if (context.Session != null)
    if (context.Session[\"Username\"] != null) {
      // Do stuff
}
    
是的,我想先检查一下上下文是否不为null。     
.ashx文件也有类似的问题。解决方案是处理程序必须实现IReadOnlySessionState(用于只读访问)或IRequiresSessionState(用于读写访问)。例如:
public class myModule: IHttpHandler, IRequiresSessionState { ... }
这些接口不需要任何其他代码,但可以用作框架的标记。 希望这会有所帮助。 乔纳森     

要回复问题请先登录注册