96

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

ここに画像の説明を入力してください

User設定を追加するときに、スコープをまたはとして定義できることに気付きましたApplication。-

  1. ユーザー
  2. 応用

セクションに行くときに設定を 定義する場合、セクションにUser行くときに設定を定義する場合userSettings
ApplicationapplicationSettings

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;

Userとスコープの違いは何ですか?Applicationまた、どのような状況でこれら2つから選択する必要がありますか?

4

2 に答える 2

79

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

編集:たとえば、さまざまなモジュールを使用してアプリケーションを作成し、メインモジュールが正しいバージョンのセキュリティモジュールを使用していることを確認する必要がある場合があります。このために、アプリケーションスコープ設定を設定します。例:

SecurityModuleVersion  string     Application      v1.21

後でセキュリティモジュールをリファクタリングするときに、適切なセキュリティが実装されていることを確認するために、展開時に値をv1.22に変更する場合があります

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

ApplicationSkin        string     User              DefaultSkin

次に、ミシェルが好みの肌に変わると、アプリケーションは彼女の設定を記憶します。プロパティは次のようになります。

ApplicationSkin        string     User              HelloKittySkin
于 2012-10-24T10:05:54.110 に答える
73

アプリケーションスコープの設定は読み取り専用であり、設計時、またはアプリケーションセッション間で.exe.configファイルを変更することによってのみ変更できます。ただし、ユーザースコープの設定は、プロパティ値を変更する場合と同じように、実行時に書き込むことができます。新しい値は、アプリケーションセッションの間持続します。Settings.Saveメソッドを呼び出すことにより、アプリケーションセッション間でユーザー設定への変更を永続化できます。

msdnのソース:C#での設定の使用

ユーザー設定は通常、ユーザー設定(アプリ通知設定など)を永続化するために使用されます。アプリケーション設定は通常、APIキーなどのアイテムに使用されます。

@kmoteが指摘しているように、ユーザー設定が実行時に(を介してsettings.Save())変更および永続化されると、ユーザープロファイルストレージ内のフォルダー(通常、Windows 7以降ではC:\ Users \ Username \ AppData \ Local \ AppName )に書き込まれます。 )。プログラムでファイルの場所を特定するには、この投稿を参照してください。

于 2012-10-24T10:03:52.863 に答える