我有一个对象 MyObject,我将其存储在 session 中。
我这样写:
MyObject TheObject = HttpContext.Current.Session["TheObjInSession"] as MyObject;
我收到错误对象引用未设置到对象的实例
为什么?我认为如果您使用 as
进行转换并且转换产生错误,那么它只会返回 null 并继续执行。我应该如何重写这一行?
感谢您的建议。
PS:产生错误是因为我删除了启用 session 行[WebMethod(EnableSession = true)]
我会将该行放回原处,但我想确保没有异常万一出现问题。
最佳答案
有可能是Session
正在触发它(它要么不存在,要么尚未建立)。如果您没有将类标记为管理 session ,那么这在处理程序中很常见。
是的,你是对的,as
将尝试进行强制转换或导致null
,但这仅假设您的左侧对象有效并且具有尝试强制转换的值。
更深入地解释一下:
HttpContext.Current.Session["Foo"]
HttpContext Probably fine
HttpContext.Current May not exist
HttpContext.Current.Session Most likely cause (no access to session)
如果 Session
本身不存在,这实际上使得从 Session
元素引用键变得不可能。
关于c# - 使用 "as"转换对象仍然给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674954/