0

このコードの関数を持つクラスライブラリがあります。

this.apikey = ConfigurationManager.AppSettings["ApiKey"];

コンソールアプリケーションでこの関数を呼び出すと、AppSettingsにキーがないと表示されます。また、接続文字列はaspnet ...であるのに対し、私のものはsqlserverであると記載されています。したがって、Imがライブラリ関数で呼び出しているにもかかわらず、ライブラリアプリの構成を読み取っていないことは確かです。

これは正常ですか、それとも私は何か間違ったことをしていますか?

私は、xmlを作成して解析し、車輪の再発明を行う必要がないようにしたいと考えていました。

ありがとう

4

2 に答える 2

3

これは正常ですか、それとも私は何か間違ったことをしていますか?

それは正常であり、あなた何か間違ったことをしています。

通常、ライブラリには独自の構成はありません。実行中のアプリケーションの構成によって異なります。

appSettingsおよびconnectionStringsをアプリケーション構成に追加すると、すべてが機能します。


つまり、アプリケーションがロードされ、それが使用するライブラリがロードされると、アプリケーション構成が読み取られます。他の構成ファイルは読み取られません。の静的メソッドを呼び出すとConfigurationManager、ロードされた構成が有効になります。

特定の構成ファイルをロードする方法はいくつかありますが、それはデフォルトの動作ではありませ

于 2013-02-14T19:55:18.617 に答える
0

あなたは確かにどこかで間違っています。とは別のセクションにキーを書いた可能性がありますappSettings。それをチェックして、それが正しい場合は、次のように車輪を再発明する必要があります。

XDocument.Load(HttpContext.Current.Server.MapPath("~/web.config"));

System.Web使用する前に、必ずプロジェクトに名前空間を追加してくださいHttpContext

于 2013-02-14T20:02:50.887 に答える