簡體   English   中英

如何在 C# 的運行時保存多個用戶設置

[英]How do I save multiple user settings in runtime in C#

我試圖讓我的應用程序在關閉應用程序后保持原樣。 因此,我想將 ListView 中的一組項目保存到設置中,但我不知道該怎么做。 我找到了一些解決方案,但我相信它們已經過時,因為它們似乎不起作用。

圖像顯示了我要保存的 ListView 中的一組項目,以便它們在重新啟動應用程序后出現:

項目

這是我希望它們出現的地方:

設置

這是我迄今為止嘗試過的代碼的一部分

 private void btn_SaveConfig_Click(object sender, EventArgs e)
    {
        int i = 0;
        Settings.Default["IP"] = tBox_discoverServerFrom.Text;
        Settings.Default["DiscoveredServers"] = cBox_discoveredServers.Text;
        foreach (var item in lV_groups.Items)
        {
            var property = new System.Configuration.SettingsProperty("Group"+i);
            property.PropertyType = typeof(string);
            property.Name = "Group " + i;
            Settings.Default.Properties.Add(property);
            Settings.Default.Save();
            i++;
        }
    }

如果您想保存大量數據,我認為使用設置 API 不是一個好主意。

我會推薦以下

  1. 創建一個 class 描述您要保存的所有數據。 為了使序列化更容易,它應該有一個參數少的構造函數和所有屬性的公共設置器。 這有時稱為數據傳輸對象 (DTO)
  2. 使用json將 object 序列化為文件。 您通常會將文件放在本地應用程序數據文件夾中的子文件夾中: Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
  3. 啟動應用程序時執行相反的操作。 如果有文件,請使用 Json 對其進行反序列化並根據需要使用它。
  4. 您可以選擇添加邏輯以定期保存文件,這將允許在應用程序崩潰的情況下進行恢復。 您可能還希望某些系統保留多個文件,以防應用程序或計算機在保存操作過程中崩潰,並且文件損壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM