2011-01-06 17 views
0

私はいくつかの重要な情報を保持している辞書タイプのオブジェクトを持っているとしましょう。 私のユーザーは、プログラムを閉じて後で作業したいと考えています。VB.NET:データを保存して読み込みますか?

ディクショナリと他の変数を1つのファイルに保存するにはどうしたらいいですか?

答えて

2

シンプルにお探しの場合は、私には2つの言葉があります:binary serialization

.NET Frameworkに組み込まれているシリアライズ機能は、このようなタスクでは素晴らしいものです。プログラムのインスタンスデータの一部をディスクに書き出すだけで、コードを自分で作成する心配がありません。

オープンまたは標準のデータ形式に固執することを心配していないので、XMLシリアル化に利点はありません。アプリケーションに使用するカスタムファイル拡張子を選択するだけです(できるだけ多くの人が使用していないことが望ましい - 3文字に制限する必要はないことを忘れないでください)。そのファイル拡張子をWindowsシェル。

もちろん、これは何もしませんデータを暗号化します。誰かがあなたのデータファイルをメモ帳で開き、その内容を見ることができますが、それほど美しくはありません。人間が読める形式ではありませんが、必ずしも安全であるとは限りません。あなたの質問は、これが必要かどうかについてはあいまいです。

EDIT:あなたのコメントを追加して、データを暗号化したいと思っています。問題ない。この質問に対する答えは、バイナリシリアル化と組み合わせて行う方法を示唆しています。How to encrypt and save a binary stream after serialization and read it back?基本的には、CryptoStream classを使用して暗号化/復号化を処理したいと考えています。

1

これを実行する方法は約100万種類あります。多くのことは、あなたが何を望み、どのくらい遠くに行きたいかによって決まります。ここで重要なのは「自分のプログラムでのみ読む」ことです。おそらく、あなたが他の人にそれを読んでもらわないようにするには、何らかのファイル形式や暗号化メカニズムを考え出す必要があります。

+0

私はこのアプリケーション(と暗号化メカニズム)のために私自身のファイル形式を作りたいと思いますが、これについて私を導くことができますか? – Voldemort

0

比較的少量のデータについて話しているのであれば、おそらくXMLにシリアライズするのは簡単でしょう。 http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.serialize.aspx

基本的には、シリアライザにオブジェクトを与え、すべてのプロパティとwhatをとり、XMLに変換します。

そこから暗号化して(http://www.codeproject.com/KB/security/SimpleEncryption.aspxを参照)、ファイルに書き込むことができます。

ご注意ください。 .NETプログラムは簡単に解体され、暗号化キーが見つかります。

関連する問題