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
        }
    }
}

问题是我如何读取FullName哪个App.config是类库(Lib)。

注意:由于我的 Lib 是可插拔组件,所以消费者可以FullName自行更改。我无法将值合并到Web.confingfrom App.config

4

3 回答 3

6

您必须合并两个配置部分并将所有设置放在应用程序的主配置文件中。如果是网络应用程序,它将是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 回答