2013-01-24 132 views
-1

發送字符串我使用StreamWriter但我怎麼可以發送Hashtable?或者它不可能?如何通過TCP發送哈希表?

public static Hashtable Users = new Hashtable(15) 

注意:我沒有找到任何可以嘗試的東西,所以我沒有任何我嘗試過的代碼。

+0

序列化它第一個 – MikeSW

+0

這個問題已經在這裏得到解答,請看這裏:http://stackoverflow.com/questions/7413828/how-to-serialize-hashtable-in-c-sharp 或在這裏:http:///stackoverflow.com/questions/2918187/xml-serialization-of-hash-tablec3-0 – bitbonk

+0

如果您使用TCP,您爲什麼要使用StreamWriter? (這是一個TextWriter) –

回答

3

您可以使用BinaryFormatter連載任何serializable對象:

BinaryFormatter binaryFormatter = new BinaryFormatter(); 
binaryFormatter.Serialize(streamWriter.BaseStream, Users); 
+0

應該是一個流,而不是streamWriter –

+0

你能序列化一個對象與二進制串行器實現IDictionary嗎? – daryal

+1

@daryal'BinaryFormatter'不關心接口;它是一個類型/字段級別的序列化程序。你在考慮XmlSerializer。也就是說,我可以想到很多不使用'BinaryFormatter'的原因; p –

0

您需要先連載,然後發送序列化流。本網站和Google上都有很多序列化資源。

0

您可以序列化HashTable並將其反序列化。但有一個問題, HashTable implements IDictionary接口它們不是直接可序列化的。您可以在以下link中找到另一種序列化方法。

+0

;這不是用於寫入原始套接字的串行器的最常見選擇 –