プロジェクトにApp.configファイルを追加しました。 [プロジェクト]> [プロパティ]> [設定]パネルから2つの設定を作成しました-
設定を追加するときに、スコープをUser
またはApplication
として定義できることに気付きました。 -
設定を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;
User
スコープとApplication
スコープの違いは何ですか?また、どのような状況でこれら2つを選択する必要がありますか?
基本的に、プログラムの実行中にアプリケーション設定を変更することはできず、ユーザー設定も変更できます。次に、これらのユーザー設定を保存して、ユーザーが次にアプリケーションを実行するときに使い慣れたエクスペリエンスが表示されるようにする必要があります。
編集:たとえば、異なるモジュールを使用してアプリケーションを作成し、メインモジュールがセキュリティモジュールの正しいバージョンを使用していることを確認する必要がある場合があります。このために、アプリケーションスコープ設定をセットアップします。例:
SecurityModuleVersion string Application v1.21
しばらくしてセキュリティモジュールをリファクタリングすると、yoがデプロイされたときに値がv1.22に変更され、正しいセキュリティが実装されていることを確認できます。
一方、アプリケーションに色の変更、フォントの変更などの異なる「スキン」がある場合は、次のようなユーザー設定をセットアップできます。
ApplicationSkin string User DefaultSkin
その後、ミシェルが好みのスキンに変更すると、アプリケーションはher設定を記憶します。プロパティは次のようになります。
ApplicationSkin string User HelloKittySkin
アプリケーションスコープの設定は読み取り専用であり、設計時またはアプリケーションセッション間で.exe.configファイルを変更することによってのみ変更できます。ただし、プロパティ値を変更するのと同じように、ユーザースコープの設定は実行時に書き込むことができます。新しい値は、アプリケーションセッションの間持続します。 Settings.Saveメソッドを呼び出すことにより、アプリケーションセッション間でユーザー設定の変更を保持できます。
Msdnのソース: C#の設定を使用
ユーザー設定は、一般的にユーザー設定(アプリ通知設定など)を保持するのに役立ちます。一般に、アプリケーション設定はAPIキーなどの項目に使用されます。
@kmoteで述べたように、ユーザー設定が変更され、実行時に永続化されると(settings.Save()
を介して)、ユーザープロファイルストレージ内のフォルダーに書き込まれます(通常はC:\ Users \ユーザー名\ AppData\Local \Windows 7以降のAppName)。プログラムでファイルの場所を特定するには、 この投稿 を参照してください。