string str="这里存储的是序列化后的字符串";
我现在需要通过str这个字符串
反序列化出来
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
Stream stream = new MemoryStream(byteArray);
//StreamReader read = new StreamReader(stream);
BinaryFormatter formatter = new BinaryFormatter();
obj = formatter.Deserialize(stream) as string[];
stream.Flush();
stream.Close();这样写不报错了.
我现在需要通过str这个字符串
反序列化出来
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
Stream stream = new MemoryStream(byteArray);
//StreamReader read = new StreamReader(stream);
BinaryFormatter formatter = new BinaryFormatter();
obj = formatter.Deserialize(stream) as string[];
stream.Flush();
stream.Close();这样写不报错了.
解决方案 »
- 代码如何手动绑定数据源到dataGridView
- VS2008 用Crystal Report做报表不能翻第3页
- 如何用编程实现:对文件夹的容量大小进行设置
- 构架是不是设计阶段的东西,是不是设计框图,uml图?哪些图或文字或其它什么东西属于构架,构架是有哪些东西构成,请举个小软件的构架例子,谢谢!
- 问一个类的设计问题
- dataset导出excel后遗留的问题,带代码。
- 代码管理问题,VSS还是TFS?
- 声明的问题?
- 你是高手嗎???近來看看就知道!!!在線等待,百分相送....
- 调整窗体时,如何让DataGrid中的数据列跟着改变,自动适应窗体大小
- 请教一个简单的http协议制定
- C#中如何创建日期类?
这里 我也有相同问题 不过比你的难度大 我的是自定义的序列化类
你确认你用的是默认格式吗?
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
这里读出来也许就不对
string b = "这里存储的是序列化后的字符串";//这是对象,只能序列化
BinaryFormatter formatter = new BinaryFormatter();
string result = null;//序列化结果 ,可以反序列化
using (Stream stream = new MemoryStream())
{ formatter.Serialize(stream, b);
stream.Position = 0;
using (StreamReader sr = new StreamReader(stream, Encoding.Unicode))
{
result = sr.ReadToEnd();
Console.WriteLine(result);
}
}
//反序列化
using (MemoryStream deseri = new MemoryStream(Encoding.Unicode.GetBytes(result)))
{
deseri.Position = 0;
string obj = formatter.Deserialize(deseri) as string;
Console.WriteLine(obj);
}