2011-11-23 50 views
0

Settings.settings文件中有一些默認列出的數據類型,然後在選擇「瀏覽」時可以從樹中添加更多內容。設置文件中的任意數據類型

其實我需要存儲在我的設置文件的int[],並且已經做了這種方式:

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

,並在節目的第一次運行:

int[] timings = Settings.SPLTimings ?? new int[] { 25, 100, 80, 50, 125, 50 }; 

,後來被保存到磁盤。與Settings.Save()

這工作得很好,但它有一個小問題。如果我想使用設置GUI界面添加一個簡單的數據類型,那麼我的自定義添加會被刪除,我必須再次添加它們。我目前只有這種特殊情況,因此如果刪除它,添加它並不是什麼大問題。另一方面,我可以像添加int[]一樣添加後續基本設置,如字符串/ ints /等,直接將其編碼到Settings.Designer文件中。

必須有更好的方法來做到這一點?

由於Settings類已經部分已經存在,是否會創建一個新文件(比如CustomSettings),它繼承了類定義幷包含了這些不明顯類型?

回答

1

Settings.Designer.cs是自動生成的。所以是的,你可以使用這個類是部分的事實,並將它自己的設置定義爲具有相同類定義的另一個文件。 這種方式設置不會被覆蓋。