【发布时间】:2011-09-18 04:14:03
【问题描述】:
真的卡住了,任何帮助和/或 cmets 将不胜感激!
我编写了一个数据库程序,它需要能够将文件中的内容加载到列表中。所以基本上我正在尝试为此使用序列化和反序列化。发生错误的区域以粗体和斜体显示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace ConsoleApplication1
{
class TheFile
{
//Version 1 serialiser, instance specific, so a bit of a pain
public void SerializeObject(string filename, TheDocument document)
{
Stream stream = File.Open(filename, FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, document);
stream.Close();
}
public TheDocument DeSerializeObject(string filename)
{
TheDocument document;
Stream stream = File.Open(filename, FileMode.Open);
BinaryFormatter bFormatter = new BinaryFormatter();
***document = (TheDocument)bFormatter.Deserialize(stream);***
stream.Close();
return document;
}
}
}
我收到的错误如下:输入流不是有效的二进制格式。起始内容(以字节为单位)为:31-37-2F-30-39-2F-32-30-31-31-20-31-31-3A-30-36-3A ...
【问题讨论】:
-
btw - 错误是否显示在文件版本中?还是仅在与数据库交谈时?如果是后者……写/读 BLOB 的代码是什么?在与数据库通信时错误处理 BLOB 是很常见的......
-
那是“17/09/2011 11:06:”。正在将当前日期和时间添加到文件中。先用记事本看看,然后用调试器检查 filename 参数。
标签: c# serialization deserialization