2009-07-29 69 views
0

deserialzing发现的.NET哈希表

时,如果我从一个流中读取,并得到一个哈希表进行查找.NET哈希表的尺寸大小。他们是了解哈希表有多大的好方法。也就是说,如果我在二进制编辑器中查看文件,有多少字节表示这个散列表?反序列化方法如何知道进入哈希的内容?

IFormatter formatter = new BinaryFormatter(); 
table = (Hashtable)formatter.Deserialize(FileStream); 

编辑: 我试图找出是,如果我是看文件的二进制编辑器多少在FILESTREAM数据的是我的哈希表。或者我可以做一些像sizeof()来找出大小(我怀疑我不能)。

+0

@Maestro,你在找什么尺码?序列化散列表的字节数? – 2009-07-29 16:59:45

+0

即使您有办法查看今天可用的二进制文件,只要二进制格式发生变化,它就可能会发生变化。 – 2009-07-29 17:28:08

回答

0

也许这段代码可能有帮助吗?无耻借用Victor Garcia Aprea。文章建议大小变量将保存字节数。当然,这是序列化为一个字符串,而不是你想要的二进制。

Hashtable ht = new Hashtable(); 
for (int i = 0; i < 100; i++) 
{ 
    ht.Add(i, (i*10000).ToString()); 
} 

LosFormatter los = new LosFormatter(); //in System.Web namespace; used for ViewState 
StringWriter sw = new StringWriter(); 
los.Serialize(sw, ht); 
string resultSt = sw.GetStringBuilder().ToString(); 

int size = sw.GetStringBuilder().ToString().Length; 

Console.WriteLine(size);