如何序列化一个hashtable

问题描述

在我的WebApplication程序中,我写了以下C#代码:FileStreamtest=File.Open(@"D:test.dat",FileMode.Append,FileAccess.ReadWrite);BinaryFormatterbf=newBinaryFormatter();Hashtabletable=newHashtable();stringsKey="Key";stringsValue="Value";table.Add(sKey,sValue);bf.Serialize(test,table);test.Close();该段代码运行正常,但反序列化时发现Key/Value根本就没有写进test.dat文件。同样的这段代码,在ConsoleApplicatiom中就完全没有问题,Key/Value的值写进了test.dat文件。哪位帮帮忙,看看这是怎么回事。

解决方案

解决方案二:

解决方案三:
转成List再序列化
解决方案四:
应该是文件的权限问题,WebApplication操作本地文件需要单独的授权.
解决方案五:
帮你顶一下,没有做过序列化…………
解决方案六:
谢谢大家的关注,还是有些疑问。Tojzywh:转成List是什么意思,是Array吗?为什么?Toxxoo2007:很可能是权限的问题,该怎么设置,能仔细教教吗。
解决方案七:
"D:test.dat"如果希望webservice能保存文件到D:盘,需要在D盘的权限中增加"NETWORKSERVICE"用户对目录的读写权限.

时间: 2025-01-26 21:47:25

如何序列化一个hashtable的相关文章

如何在.net 当中XML序列化一个Collection

Collection主要是指像Array, ArrayList, List, Dictionary, HashTable这 些数据类型,大家平时用的很多.如果一个类中有一个Collection类型的成员, 在对这个类进行XML序列化的时候,应该如何处理?应该说在.net当中这是比较 简单的,只要建立一个XmlSerializer类就可以帮你自动搞定,不过有的时候你 可能需要对自动的序列化过程施加更多的控制,比如XML的结构是实现固定的, 你必须按照要求去生成XML结构. 使用不同的属性可以灵活的

模拟一个HashTable类,包含有add、remove、contains、length方法

问题描述 如题,求教:模拟一个HashTable类,包含add.remove.contains.length方法? 解决方案 引用function Hashtable() { this.container = new Object(); /**//** put element */ this.put = function (key, value) { if (typeof (key) == "undefined") { return false; } if (this.contains

一个更好的C++序列化/反序列化库Kapok

1.Kapok的特点 简单,易用,header-only,只需要引用Kapok.hpp即可:高效,初步测试性和messagepack相当. 它是纯c++11实现,因此需要支持C++11的编译器. 2.主要功能 对对象进行自动化的序列化和反序列化,用起来非常简单,先来看个序列化/反序列化一个tuple的例子吧. //序列化  Serializer sr;  auto tp = std::make_tuple(10, 12, string("test"));  sr.Serialize(t

hashtable 一个键多个值 getValue()

问题描述 一个hashtable中,若有key是多个value的,那么把这个key的所有value都存在一个linkedlist里面.我想问,那么现在如果我用getValue(Objectkey),而这个key是有多个value的,那么这个方法返回的是一个value还是一个linkedlist?如果返回的是一个value,那么是哪个value呢? 解决方案 本帖最后由 sshber 于 2014-08-04 01:03:03 编辑解决方案二:返回linkedlist,例如:Hashtable<S

Java集合源码剖析:Hashtable源码剖析

Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中. Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆. HashTable源码剖析 Hashtable的源码的很多实现都与HashMap差不多,源码如下(加入了比较详细的注释):

Java对象序列化使用基础

所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象.这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新"装配".像RMI.Socket.JMS.EJB它们中的一种,彼此为什么能够传递Java对象,当然都是对象序列化机制的功劳. Java对象序列化机制一般来讲有两种用途: Java的JavaBeans: Bean的状态信息通常是在设计时配置的,Bean的状态信息必须被

XmlSerializer 对象的Xml序列化和反序列化

try { XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("my", "http://flibble"); Workers workers = new Workers(); workers.MyWorkers = new Worker[] { new Worker() { Name = "1", Number = 1 }, new Worker() { Nam

java教程之对象序列化使用基础示例详解_java

这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新"装配".像RMI.Socket.JMS.EJB它们中的一种,彼此为什么能够传递Java对象,当然都是对象序列化机制的功劳.  Java对象序列化机制一般来讲有两种用途: Java的JavaBeans: Bean的状态信息通常是在设计时配置的,Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息,这需要将对象的状态保存到文件中,而后能

哈希表(Hashtable)

一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写:value用于存储对应于key的值.Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对. 二,哈希表的简单操作 在哈希表中添加一个key/value键值对:Hashta