C# 将哈希表序列化为字符串并返回
我试图将哈希表序列化为字符串,然后再返回哈希表,但反序列化代码一直失败 要反序列化:C# 将哈希表序列化为字符串并返回,c#,serialization,C#,Serialization,我试图将哈希表序列化为字符串,然后再返回哈希表,但反序列化代码一直失败 要反序列化: byte[] bytes = System.Text.Encoding.Unicode.GetBytes(hash.value); System.IO.MemoryStream ms = new System.IO.MemoryStream(); ms.Write (bytes,0,bytes.Length); ms.Seek(0,System.IO.SeekOrigin.Begin); System.Run
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(hash.value);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
ms.Write (bytes,0,bytes.Length);
ms.Seek(0,System.IO.SeekOrigin.Begin);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
Hashtable h = (Hashtable)bf.Deserialize(ms);
要序列化:
MemoryStream ms = new MemoryStream();
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bf.Serialize(ms, hash);
byte[] bt = ms.ToArray();
this.value=System.Text.Encoding.Unicode.GetString(bt);
这是我在使用上述代码时遇到的错误:
EndOfStreamException:无法读取超过流结尾的内容。
但如果有人有更有效的方法,我会洗耳恭听
我已尝试转换为base64字符串/从base64字符串转换为base64字符串,但在FromBase64String
FormatException上出现以下错误:长度无效。
由于我正在使用的框架的限制,我不得不使用字符串作为媒介(这是插件的一部分)。由于某种原因,代码的序列化部分总是返回长度为3 0的字符串。什么?真奇怪。如果正确使用ToBase64String,结果字符串的长度应该是4的倍数。我同意,在反复查看同一代码几个小时后,我发现框架没有返回正确的值是一个错误:p谢谢你的帮助!:)我已尝试转换为base64字符串/从base64字符串转换为base64字符串,但在FromBase64StringFormatException上出现以下错误:长度无效。
由于我正在使用的框架的限制,我不得不使用字符串作为媒介(这是插件的一部分)。由于某种原因,代码的序列化部分总是返回长度为3 0的字符串。什么?真奇怪。如果正确使用ToBase64String,结果字符串的长度应该是4的倍数。我同意,在反复查看同一代码几个小时后,我发现框架没有返回正确的值是一个错误:p谢谢你的帮助!:)