如何将二进制文件读入序列化列表C#

时间:2011-12-22 05:26:58

标签: c# winforms file-io

我有一个事件列表,我使用此代码将其保存在二进制文件中

using (FileStream fs = new FileStream(fileName, FileMode.CreateNew))
{
    using (BinaryWriter w = new BinaryWriter(fs))
    {
        foreach (MacroEvent macroEvent in events)
        {
            w.Write(macroEvent.TimeSinceLastEvent);
        }
    }
}

但我对我的阅读方式感到困惑,并将其重新列入名单?

2 个答案:

答案 0 :(得分:0)

以下方法是如何为要使用BinaryFormatter序列化和反序列化的对象实现ISerializable的良好指南:

http://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

这是关于BinaryFormatter的.NET 4.0文档:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.aspx

和ISerializable:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

答案 1 :(得分:0)

Sequential file access File using serialization
Add
Using system.Io
Using system.Runtime.Serialzation.Formatters.Binary
Using System.Runtime.Serialization
Using Macro Events
name space created fileform  : macroform
//Object For serializing RecordSerializables in binary format
Private Binary formatter = new binaryFormatter();
Private file stream output; //stream for writing to a file

使用方法反序列化来读取数据 抛出反序列化的结果以键入serializeable以键入serializeable这个强制转换是必要的,因为Deserialize返回一个类型为object的引用,并且需要访问属于类serializable的属性。如果抛出反序列化期间的错误 抛出序列化并关闭文件流

Private BinaryFormatter eader = new BinaryFormatter();

私人文件流输入; //用于从文件中读取的流