簡體   English   中英

Visual Studio Settings.settings文件

[英]Visual Studio Settings.settings file

有沒有一種在運行時在Settings.settings文件中創建新設置的方法?

例如,我想從一個類函數寫入設置文件,並從另一個類函數讀取該值。 不,我不想傳遞這些值。

  • 我知道如何從Settings.settings文件中獲取值(值= Properties.Settings.Default.XXX)
  • 我知道如何更新現有值(Properties.Settings.Default.XXX = newValue; Properties.Settings.Default.Save())

我想知道如何在運行時將“名稱”,“類型”,“范圍”和“值”添加到Settings.settings文件中。

任何建議,將不勝感激!

謝謝,伊瓦爾

問題

我相信Visual Studio在設計應用程序設置和值時會生成代碼,因此在運行時這將不容易,而且最糟糕的是沒有設計者。 但是,有時您可以在運行時調用設計功能。

您會注意到,后面的代碼具有您在設計器中創建的C#屬性。 例如,我添加了以下設置:

Age [int]  30. 

后面的代碼已生成:

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("30")]
public int Age {
   get {
       return ((int)(this["Age"]));
   }
   set {
       this["Age"] = value;
   }
}

(代碼生成是為什么您使用強類型設置的原因)

我不確定您是否可以在運行時實現同樣的效果。 您將不得不生成代碼並將其動態地反饋給JIT編譯器或類似的東西。 或者,也許是我對設置的有限了解不知道的另一種方法。

建議/解決方法

我建議您找出一種更輕松的方法,而不是跳過籃球。 例如,設置一個可序列化的收集類型,以便它可以存儲多個值。

然后,例如,您可以在一種設置下存儲多個年齡:

Ages  [System.Collections.ArrayList]  {add multiple values programatically}

您可能最終會用C#代碼來管理它,如下所示:

System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add("1");
list.Add("30");
Properties.Settings.Default.Ages = list;
Properties.Settings.Default.Save();

暫無
暫無

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

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