Использовать обычный файл отображения памяти. Запись в двоичные исполняемые файлы - плохая практика, и многие (если не все) ОС будут запрещать это во всех, кроме самых разнородных настройках политики безопасности.
PS. Популярным термином для этого вида хранения является «база данных» (или база данных программы ). Это должно помочь вам получить несколько хитов Google.
Кроме того, в зависимости от предпочтительного метода реализации вы можете использовать отображение памяти для наложения вашего сегмента данных (чтобы вы могли иметь свой торт и есть его: сохраняйте свои глобальные статические данные там, где они равны и легко записать их на диск). Однако это больше в духе C / C ++.
В .NET вам придется использовать гигантскую структуру пользовательского макета (то есть все ссылочные типы исключены - это более неестественно в C #, чем, скажем, в C ++)
Так что, вероятно, лучше всего использовать UnmanagedMemoryStream
, сериализовать ваши данные с помощью встроенного .NET System.Runtime.Serialization
(из которых XML-версия на сегодняшний день является наиболее популярной и легко копируется из блогов и других источников).
Приветствия