c# - 将 session 转换到对象

标签 c# session telerik

我正在将 RadTreeNode 对象分配到 session 中(我从调试器中检查 session 不为空)。然后我尝试使用以下代码将其转换回 RadTreeNode 对象。

 RadTreeNode node = new RadTreeNode();
      node =  (RadTreeNode)Session["nextNode"] as RadTreeNode;

但节点变量仍然为空。有什么建议吗?

最佳答案

Session["nextNode"] 很有可能为空,正如@Richard 在他的评论中所回避的那样。

如果源对象未转换为目标类型,则“as”转换as RadTreeNode 将产生空值。前缀转换 (RadTreeNode) 以引用类型为目标,当 as RadTreeNode 转换失败时不会抛出异常。

您将空值转换为 RadTreeNode 并且您得到了您应该得到的...RadTreeNode 的空引用。

session 通常很糟糕,应尽可能避免。我的猜测是您期望 Session 以一种方式行事,而不是。

例如,RadTreeNode 是否可序列化?已经有一段时间了,所以我不记得 Session 如何处理序列化/反序列化对象,但我猜它会吃掉与序列化相关的任何异常。诚然是一个猜测。

关于c# - 将 session 转换到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433099/

相关文章:

PHP session 在页面之间丢失数据

NHibernate session 管理

jquery - Kendo DatePicker 返回错误值

c# - 从服务器端的 GridTemplateColumn 中检索值 (Telerik RadGrid)

c# - MySQL "network-related or instance-specific error occurred while establishing a connection to SQL Server"

c# - 在 WPF 窗口中完全删除标题栏的上下文菜单

javascript - node.js - 无法弄清楚如何使用 session-express 保存 session

Telerik MVC Grid 根据其他列值制作红色列

c# - 正则表达式不起作用并且超时

c# - @Html.Value of(x=>x.Property Name) 和@Model.Property Name 有什么区别