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インターフェイスを使用して単純なデータ型を追加する場合、カスタム追加は削除され、再度追加する必要があります。私は現在、この特別なケースを1つしか持っていないので、削除された場合に追加することは大したことではありません。一方、:を追加したのと同じ方法で、strings / ints / etcなどの後続の基本設定を追加することができますint[]:それをSettings.Designerファイルに直接コーディングします。

これを行うためのより良い方法があるはずですか?

クラスはすでに部分的であるためSettings、新しいファイル、たとえばCustomSettingsを作成する方が良い解決策でしょうか。このファイルは、クラス定義を継続し、これらのあいまいなタイプを含みますか?

4

1 に答える 1

1

Settings.Designer.cs自動的に生成されます。そうです、このクラスが部分的であるという事実を利用して、同じクラス定義を持つ別のファイルに独自の設定を定義することができます。このようにして、設定が上書きされることはありません。

于 2011-11-23T12:45:15.923 に答える