2009-07-29 73 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);