2011-01-06 1 views
0

Предположим, у меня есть объект типа словаря, содержащий важную информацию. Ну, мой пользователь хочет закрыть программу и работать над ней позже.VB.NET: сохранить и загрузить данные?

Как сохранить словарь и другие переменные в одном файле, который может быть прочитан только моей программой?

ответ

2

Если вы ищете простой, у меня есть два слова для вас: binary serialization.

Возможности сериализации, встроенные в .NET Framework, являются прекрасными для таких задач, когда вы просто хотите вытолкнуть некоторые из данных экземпляра вашей программы на диск, не беспокоясь о том, чтобы написать кучу кода самостоятельно.

Поскольку вы не беспокоитесь о том, что придерживаетесь любого открытого или стандартного формата данных, нет никакой пользы для сериализации XML. Просто выберите пользовательское расширение файла, которое будет использоваться для вашего приложения (желательно тот, который еще не используется большинством других), помните, что вам необязательно ограничивать себя всего тремя символами), а затем связать это расширение с вашим приложением в оболочки Windows.

Конечно, это ничего не сделает для шифрует данные. Кто-то все еще может открыть ваш файл данных в Блокноте и посмотреть его содержимое, но они не будут очень красивыми. Это не удобочитаемый формат данных, но он не обязательно безопасен. Ваш вопрос неоднозначен относительно того, требуется ли это.

EDIT: Я вижу, что вы добавили комментарий, который предпочел бы зашифровать ваши данные. Нет проблем. Принятый ответ на этот вопрос предлагает способ сделать это в сочетании с двоичной сериализацией: How to encrypt and save a binary stream after serialization and read it back? По сути, вы хотите использовать CryptoStream class для обработки шифрования/дешифрования.

1

Существует около миллиона и один способ сделать это. Многое зависит от того, что вы хотите и как далеко вы хотите идти. Ключевая часть здесь «прочитана только моей программой». Скорее всего, вам нужно будет придумать какой-либо формат файла или механизм шифрования, если вы не хотите, чтобы другие его читали.

+0

Я хотел бы создать свой собственный формат файла для этого приложения (и механизм шифрования), можете ли вы мне рассказать об этом? – Voldemort

0

Если вы говорите только об относительно небольшом количестве данных, возможно, просто просто его сериализовать в XML. См. http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.serialize.aspx

В принципе, вы даете сериализатору объект, и он будет принимать все свои свойства и что и преобразовывать их в XML.

Оттуда вы можете зашифровать его (см. http://www.codeproject.com/KB/security/SimpleEncryption.aspx) и записать его в файл.

Будьте осторожны, хотя. .NET-программы легко разбираются, и ваш ключ шифрования может быть найден.