Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在会话中存储哈希表_C#_.net_Asp.net_Session_Hashtable - Fatal编程技术网

C# 在会话中存储哈希表

C# 在会话中存储哈希表,c#,.net,asp.net,session,hashtable,C#,.net,Asp.net,Session,Hashtable,如何将哈希表集合存储到.NET中的会话变量中。不幸的是,我无法存储哈希表或字典 请在这方面帮助我。我不知道为什么您不能将哈希表存储到会话中并从会话中获取它,因为它与在会话中存储表或任何对象一样简单。 如果我正确理解您的问题,我可以提供如下解决方案 在要将哈希表存储到会话中的页面中执行此操作 Hashtable ht = new Hashtable(); ht.Add("id", 1); ht.Add("name", "ram");

如何将哈希表集合存储到.NET中的会话变量中。不幸的是,我无法存储哈希表或字典


请在这方面帮助我。

我不知道为什么您不能将哈希表存储到会话中并从会话中获取它,因为它与在会话中存储表或任何对象一样简单。 如果我正确理解您的问题,我可以提供如下解决方案

在要将哈希表存储到会话中的页面中执行此操作

 Hashtable ht = new Hashtable();
            ht.Add("id", 1);
            ht.Add("name", "ram");
            Session["hashtab"] = ht;  
并在其他页面中获取哈希表,如下所示

Hashtable ht=新的Hashtable();
ht=(哈希表)会话[“哈希表”]

我得到了答案。。代码ie new关键字没有问题。在上面的步骤中,在存储到会话之后,我正在清除哈希表项

         Hashtable ht = new Hashtable();
         if(condition){

        ht.Add("id", 1);
        ht.Add("name", "ram");
        Session["hashtab"] = ht;  
        }

        ht.Clear();
这个ht.Clear()就是问题所在。我删除了它,没有任何问题。
是这样的。当我删除该代码时,它对我来说运行良好

请解释一下你为什么不能那样做,那样我们也许能帮上忙。您尝试了什么,遇到了什么问题?请定义为什么“无法存储哈希表或字典”,因为它们是存储在
会话
变量中的完美对象。您在这些字典/哈希表中存储了什么类型的对象?它们可以序列化吗?您使用的是哪种会话状态提供程序(在proc、stateserver等中?)。它只是字符串数据。我不知道为什么它没有被储存。。你可以看到我的注释和代码。。。。im分配时,整个数据都在哈希表对象中。。但是后来当我叫它的时候,我不明白。当你得到哈希表时,跳过新的;它将它指向新创建的哈希表,然后立即将它指向会话中的哈希表。因此,第一次分配是浪费时间和内存,以便稍后进行垃圾收集。仍然有效,在这种情况下没有真正的疾病,但如果你在一个紧密的循环中这样做,可能会造成不可忽视的时间和内存浪费。