1. ホーム
  2. c#

[解決済み] App.config: ユーザースコープとアプリケーションスコープ

2023-01-29 16:25:49

質問

プロジェクトにApp.configファイルを追加しました。 プロジェクト&プロパティ&設定パネルから、2つの設定を作成しました。

私は、設定を追加するときに、スコープを次のように定義できることに気づきました。 User または Application . -

  1. ユーザー
  2. アプリケーション

もし私が設定を User とすると userSettings セクションに移動します。

として定義すると Application になります。 applicationSettings セクション

App.config

<configuration>

    <userSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting1" serializeAs="String">
                <value>Value1</value>
            </setting>
        </DemoApp.Properties.Settings>
    </userSettings>

    <applicationSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting2" serializeAs="String">
                <value>Value2</value>
            </setting>
        </DemoApp.Properties.Settings>
    </applicationSettings>

</configuration>

しかし、これらの設定は、同じように .cs -

コード

string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1;
string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;

の違いは何ですか? UserApplication の2つのスコープがあり、どのような状況でこの2つを選択すべきなのでしょうか?

どのように解決するのですか?

基本的に、アプリケーションの設定はプログラムの実行中に変更することはできませんが、ユーザーの設定は変更することができます。 これらのユーザー設定は、ユーザーが次にアプリケーションを実行するときに使い慣れたエクスペリエンスを提供できるように、保存しておく必要があります。

編集する 例として、異なるモジュールでアプリケーションを書き、メインモジュールがセキュリティモジュールの正しいバージョンを使用していることを確認する必要があるかもしれません。 このために、たとえば、アプリケーションスコープの設定を行うでしょう。

SecurityModuleVersion  string     Application      v1.21

後でセキュリティモジュールをリファクタリングするときに、いつか。 あなたは を v1.22 に変更し、正しいセキュリティが実装されていることを確認することができます。

一方、アプリケーションが色の変更やフォントの変更など、異なる「スキン」を持っている場合、次のようなユーザー設定を行うことができます。

ApplicationSkin        string     User              DefaultSkin

そして、Michelleが好みのスキンに変更すると、アプリケーションは以下を記憶しています。 彼女の の設定を記憶します。 プロパティは今、次のように見えるかもしれません。

ApplicationSkin        string     User              HelloKittySkin