2

複数の実行可能プロジェクト (winform およびコマンド ライン プログラム) を含むかなり大規模な .NET ソリューションがあります。現在、これらの各プロジェクトには、接続文字列、メール サーバー設定などを含む独自の app.config があります。ご想像のとおり、特定の設定を更新する必要があるたびに、すべての app.config ファイルを変更するのはあまり便利ではありません。

これらの設定を一元管理するためのベスト プラクティスは何だと思いますか? これまで、私は 2 つの異なるアプローチについて考えてきました。1 つ目は、設定を含み、XML にシリアル化および XML から逆シリアル化されるカスタム クラス (または複数のクラス) を使用することです。2 つ目の方法は、1 つのプロジェクトに対してのみ app.config ファイルを定義し、ConfigurationManager.OpenExeConfiguration() を使用してそれにアクセスする方法です。

4

3 に答える 3

1

ConfigSourceディレクティブを使用して、すべての設定を共有値とともに中央ファイルからロードします。

于 2008-09-30T18:09:09.860 に答える
1

スタートアップ プロジェクトで App.config を作成し、他のプロジェクトで静的にリンクします。

[追加] -> [既存のアイテム] に移動して静的にリンクできます。ファイル ブラウザー ウィンドウの [追加] ボタンをクリックすると、[追加] ボタンに小さな下矢印が表示されます。そこをクリックすると、「リンクとして追加」オプションが表示されます。これにより、両方のプロジェクトに同じ App.Config が配置され、実際のファイルは 1 つだけになります。

プロジェクトに、「一部」の設定のみが同じである異なる App.Config がある場合は、ファイル パラメーターを確認することを検討してください。つまり、プロジェクトに複数の App.Config を含めることができます: http://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

中央の common.config ファイルを作成して、それを指すだけです。

于 2008-09-30T17:32:37.250 に答える
0

個人的には、別のアセンブリの .config ファイルに不必要な依存関係を導入しないことをお勧めします。このシナリオでは、シリアル化を伴うカスタム クラスを使用する方がきれいに聞こえますが、バージョン管理の問題が発生する可能性があり、app.config によって提供される潜在的な利点 (セクション ハンドラーなど) が失われます。

于 2008-09-30T17:37:16.473 に答える