2013-01-24 96 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

;这不是用于写入原始套接字的串行器的最常见选择 –