2013-07-26 14 views
7

私はさまざまなシナリオでそれを練習することで.NETのConfigurationManagerを理解しようとしています。On .NETでConfigurationManagerを理解する

私はProject1とProject2の2つのプロジェクトを持っています。 Project2はProject1を使用します。

私の状況:project1のapp.configファイルにセクション(serializedfilename)があります。 と私はのProject2でProject1の

private static string SerializedConfiguration = ConfigurationManager.AppSettings["SerializedFilename"]; 

のclass1でのコード行を持って、私はProject1ののclass1でメソッドを呼び出すと、私は例外を取得しています。

.NETのように、project1を適切に参照していても、project2から呼び出されたときに、project1のapp.configファイルの設定を見つけることができないようです。私はのProject2のファイルをapp.configをするセクション(serializedfilename)を移動するときしかし、...すべてがうまく動作しているようです

...

は、誰かがここで何が起こっているのか私に説明できますか?私は、ConfigurationManagerが元のアプリケーション(ここではproject1)ではなくクライアントアプリケーション(この場合はproject2)のコンテキストに存在すると仮定したいと思います。

注:私は新しいです)

ありがとうございます。

答えて

3

リファレンスapp.Configはコピーされません。 App.configは、プライマリプロジェクトのプロジェクト2に追加する必要があります。プロジェクト2にプロジェクトを追加し、参照されたオブジェクトProject 1で呼び出すと、VSはプライマリプロジェクトからプロジェクトを選択するため、エラーは発生しません。

+0

ありがとう私は感謝します – oliverdejohnson

1

修正すると、ConfigurationManagerは実行中のアセンブリを検索してapp.configまたはweb.configを検索します。

設定設定にアクセスするクラスライブラリDLLがWebサイトプロジェクトで実行されている場合、クラスライブラリのapp.configではなくweb.configにアプリケーション設定を追加する必要があります。

+0

ありがとうございます。しかし、どうしてドキュメンテーションがそれほど言わなかったのか... http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx – oliverdejohnson