5

これは答えるのが簡単な質問かもしれませんが、解決するのに苦労しています。

Web.configのWebアプリケーションには次の値があります。

<appSettings>
    <add key ="FirstName" value ="Prasad"/>
    <add key ="LastName" value ="Kanaparthi"/>
</appSettings>

App.configクラスライブラリ(Say Lib)に次の値があります。

<appSettings>
    <add key ="FullName" value ="Prasad Kanaparthi"/>
</appSettings>

クラス ライブラリ (Lib) はプラグ可能なコンポーネントです。Web アプリケーションにクラス ライブラリ (Lib) 参照を追加しました。

クラス ライブラリ (Lib) に以下のコードがあります。Web アプリケーションでインスタンスを作成するGetAppSettingsと、以下の応答が表示されます。

namespace Lib
{
    public class GetAppSettings
    {
        public GetAppSettings()
        {
            var FirstName = ConfigurationManager.AppSettings["FirstName"];  // O/P : Prasad
            var MiddleName = ConfigurationManager.AppSettings["LastName"];  // O/P : Kanaparthi

            var FullName = ConfigurationManager.AppSettings["FullName"];    // O/P : null
        }
    }
}

質問は、クラス ライブラリ (Lib)FullNameからどのように読み取ることができるかです。App.config

: 私の Lib はプラグ可能なコンポーネントであるため、消費者はFullName自分の を変更できます。Web.confingfromに値をマージできませんApp.config

4

3 に答える 3

6

両方の構成セクションをマージし、すべての設定をアプリケーションのメイン構成ファイルに配置する必要があります。Webアプリケーションの場合、それはになりますweb.config

于 2012-10-24T09:07:13.273 に答える
3

簡単に言えば、できません。ライブラリを使用するアプリケーションは、app.config. 代わりにファイルを使用するsettingsか、より長い方法で構成マネージャーを抽象化しapp.config、アプリケーションの出力ディレクトリにある XML ファイルとしてプログラムで読み取り、その設定を含めることができます。当然のことながら、どちらのオプションも理想的ではありません。

于 2012-10-24T09:29:17.627 に答える
0

私は Web アプリケーションを頻繁に使用するわけではありませんが、デスクトップ アプリケーションではよく似た問題に直面します。Daniel Hilgarth https://stackoverflow.com/a/6151688/2212458が提供するコードを使用して、構成ファイルを一時的に切り替えました。プラグイン ローダーは、プラグイン構成ファイルを取得してから、独自の構成ファイルを復元できます。

于 2013-05-01T02:19:38.487 に答える