1

C# GUI に構成を保存するために、ini ファイルを使用しています。しかし、GUIを再度起動して構成を保存すると、以前に保存した構成が上書きされます。設定を保存し続ける方法はありますか?

4

2 に答える 2

1

app.config.ini の代わりにファイルを使用したい。名前空間ConfigurationManagerからを使用して、その設定にアクセスします。System.Configurationから継承するクラスを作成することで、カスタム構成セクションを作成することもできますConfigurationSection。これにより、構成ファイルのインテリセンス サポートも提供されます。

その一例 (asp.net を使用していますが、任意の .net コードで機能します) はhereです。

編集:質問を読み直して、アプリケーション設定を保存しようとしているapp.configか( )、セッションデータをディスクに保存しようとしているか(レコードの保存またはオブジェクトのシリアル化)が不明です。前者の場合は を見てくださいapp.config。同じ「設定」を設定するが異なる値 (複数の SQL 接続文字列を持つなど) を持つ複数の項目を使用し、ユーザーから取得したパラメーターでそれらを呼び出すこともできます。

セッション データ/状態を保存しようとしている場合は、オブジェクトをシリアル化する必要があります。ディスクに永続化するために、シリアル化/逆シリアル化 (多くのオプションが利用可能) と System.IO 名前空間を調べてください。

于 2013-11-13T13:55:28.973 に答える
0

毎回同じファイルを上書きしないようにする唯一の方法は、ファイル名を一意にすることです。

FileName<TimeStamp>.ini

または

FileName<Guid>.ini

または、ウィンドウが重複ファイルに対して行うことを実行し、すでに存在する数を確認して、最後に新しい番号を追加することもできます。

FileName.ini
FileName1.ini
FileName2.ini

個人的には、タイムスタンプ/GUID アプローチを使用します。ここにいくつかのコード例があります

class Program
{
    static void Main()
    {
        for (int i = 0; i <= 10; i++)
        {
            SaveConfiguration();
            Thread.Sleep(500);
        }
    }

    private static void SaveConfiguration()
    {
        string fileName = System.IO.Path.Combine(@"Config\File\Dir", String.Format("Config{0:yyyyMMddHHmmss}.ini", DateTime.UtcNow));
        System.IO.File.WriteAllText(fileName, "File contents");
    }
}
于 2013-11-13T14:10:38.633 に答える