Как прочитать двоичный файл в сериализованный список C # - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть список событий, и я сохраняю его в двоичном файле, используя этот код

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 голосов
/ 04 января 2012
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

Используйте метод Deserialize для чтения данных. Результат преобразования Deserialize для типа serializeable для типа serializeable - это преобразование необходимо, потому что Deserialize возвращает ссылку на объект типа и требует доступа к свойствам, принадлежащим классу serializable.Если выдается ошибка во время десериализации, генерируется сериализация и поток файлов закрывается

Private BinaryFormatter eader = new BinaryFormatter ();

Ввод потока Private File;// поток для чтения из файла

0 голосов
/ 22 декабря 2011

Следующий рецепт является хорошим руководством о том, как реализовать ISerializable для объекта, который вы хотите сериализовать и десериализовать с помощью BinaryFormatter:

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

Вот документация 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...