无法从类库中读取App.config值

这可能是一个简单的问题,但我正在努力解决。

我的Web应用程序中包含以下值的Web.config

     

我的类库(Say Lib)中有以下值的App.config

    

类库(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 } } } 

问题是如何从App.config读取FullName ,这是类库(Lib)。

注意 :由于我的Lib是可插拔组件,因此消费者可以更改自己的FullName 。 我无法将值与App.config Web.confing合并。

您必须合并两个配置节并将所有设置放在应用程序的主配置文件中。 在Web应用程序的情况下,它将是web.config

简短的回答是:你做不到。 使用您的库的应用程序将不会关注您的app.config 。 您可以使用settings文件,也可以更长时间地使用,抽象出配置管理器,并以编程方式将app.config作为XML文件读取到应用程序的输出目录中,以便包含其设置。 可以理解,这两种选择都不理想。

虽然我不经常使用Web应用程序,但在我的桌面应用程序中,我经常遇到类似的问题。 我一直在使用Daniel Hilgarth提供的代码https://stackoverflow.com/a/6151688/2212458来临时切换配置文件。 插件加载器可以拉入插件配置文件,然后恢复它自己的。