基本的に、アプリケーションの複数のインスタンスが起動されますが、個別のユーザー設定が必要です。現在、そのために「ユーザー設定」を使用しており、単一のインスタンス (Windows ユーザーごと) に対しては正常に機能しますが、コマンド ライン経由で渡された設定パスなどを使用して複数のインスタンスを起動できるようにしたいと考えています。組み込みの .NET 設定を使用してこれを行う方法はありますか?それとも独自に作成する必要がありますか?
5 に答える
ユーザー設定でファイルを管理する LocalFileSettingsProvider クラスを微調整することはまったく不可能です。それを書いた人は誰でも、セキュリティ上の懸念によって身動きが取れなくなったに違いありません。おそらく不当ではありません。
System.Configuration に固執する場合は、独自のプロバイダーを実装する必要があります。これを行う最善の方法は、RegistrySettingsProvider サンプルから開始することです。ファイルを正しく処理するのには役立ちませんが、少なくとも構築するものはあります。Reflector を使用したいくつかのピークが役立ちます。
アプリの設定を処理し、ファイル名を受け入れるクラスを開発することをお勧めします。アプリの設定が必要な DLL に対してこれを行う必要がありました。これは、設定をローカル以外の場所 (ネットワーク上の単一の場所など) に保存する場合にも役立ちます。
これにより柔軟性が大幅に向上します。投資する価値は間違いなくあります。
.Net has a Configuration Provider API. app.config is just a predefined implementation of that API. You should look into using the API to either extend the built-in API, or create your own.
構成情報をDBに保存し、ユーザーに基づいて読み取ることをお勧めします。どのような場合でも、ユーザー固有の情報を異なるコピーで維持する必要があります。アプリケーションのオンロードを DB から読み取り、すべての設定をキャッシュします。
情報を取得するためのユーザー ユーザー パーソナライゼーションおよびプロファイル API。ユーザーのシステムにあるファイルを扱うよりも、DB の情報を更新する方が非常に簡単です。