1

app.config を使用する Windows フォーム アプリケーション VS 2008 - C# があります。

実行時に、アプリケーションのメニュー オプションで、app.config の値を編集して保存し、アプリケーションを再起動します。

サンプルソースコード、良いパターンとプラクティス??

編集:

MSDN フォーラムで、Jean Paul VA:

  1. テスト用の Windows フォーム アプリケーションを作成し、そこに app.config を追加します。

  2. System.configuration への参照を追加

  3. 値が「Verdana」の appSettings に「font」という名前のキーを追加します。

  4. フォームにボタンを配置し、クリックすると変更コードが追加されます。

        System.Configuration.Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
        configuration.AppSettings.Settings.Remove("font");
        configuration.AppSettings.Settings.Add("font", "Calibri");
    
        configuration.Save(ConfigurationSaveMode.Modified);
    
        ConfigurationManager.RefreshSection("appSettings");
    

あなたはそれについてどう思いますか ?

4

4 に答える 4

1

実行時に実際に構成ファイルに書き込むことはできないと思います-読み取り専用である可能性がありますが、ファイルを書き直し(必要に応じて適切な変更を加えて)、本質的にさらに、アプリケーションを再起動して新しい値をロードします (これが望ましいとは非常に思えず、個人的にはこのマラーキーを計測しようとはしません)。

この方法で簡単に操作できる設定ファイルにアプリケーション設定を保存することも検討してください。

設定を使用するには、まず Settings.settings ファイルがあると仮定します (ない場合は、作成します: [アイテムの追加] -> [設定ファイル]) MyUnicornsName。変更を加えて永続化するには、次のように簡単に実行できます。

Settings.Default.MyUnicornsName = "Lucifers Spawn";
Settings.Default.Save();

同様に、設定を読み取るには:

ATextDisplayControl.Text = Settings.Default.MyUnicornsName

ご存じない場合は、IDE で設定ファイルを開くかダブルクリックすると、Visual Studio が設定エディターを開きます。このインターフェイスを使用すると、初期設定とその値を追加および編集できます。これstringはサポートされている唯一の値ではなく、すべてのプリミティブを使用でき、私の知る限り、シリアライズ可能な値も使用できます。

于 2011-01-13T12:28:38.990 に答える
0

通常の自動生成された Properties.Settings を使用して、代わりに変更データを設定ファイルに保存できない理由はありますか? 素晴らしい点の 1 つは、何を変更しようとしているのかを把握しているため、アプリケーションを再起動する必要さえないことです。

C# での設定の使用

設定への実行時アクセスは、次のように簡単です。

this.BackColor = Properties.Settings.Default.myColor;

(app.config 自体を単純に変更するための適切なパターンはありません。そのコンテキストでは、エキスパート ユーザー設定で読み取り専用になるように設計されています。)

于 2011-01-13T12:30:23.987 に答える
0

これらの種類のものには、[プロジェクト] -> [プロパティ] -> [設定] を使用します。

于 2011-01-13T12:31:21.580 に答える
0

実際には、App.config のプロパティは ReadOnly であるため、実行できません。

しかし、トリックがあります.........

Settings.cs ファイルで、パブリックな関数またはメソッドを作成して、次の方法で使用できるようにします。Properties.settings

そして、次のコードを書きます..

    public void ChangeProperty(string propertyname, string value)
    {
        this[propertyname] = value;
    }

プロパティ名の正確な文字列をメソッドに渡すことを忘れないでください。または、設定の書き込み専用プロパティを作成することをお勧めします。

アップデート

これはプロパティとして設定するためのコードです。例として接続文字列を使用していますが、何でもかまいません。保存されているプロパティはタイプであることを覚えておいてObjectください。そのため、それに固有のプロパティを作成できます..

    public string MyCustomConnectionstring
    {
        set
        {
            //replace the string with your connection string otr what ever setting you want to change
            this["myConnectionString"] = value;
        }
    }

このプロパティを使用して、実行時に ConnectionString を簡単に変更できるようになりました...

于 2011-01-13T12:42:13.943 に答える