这可能是一个简单的问题,但我很难解决。
我的Web应用程序中包含以下值的Web.config
。
<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.confing
与App.config
合并。
答案 0 :(得分:5)
您必须合并两个配置部分,并将所有设置放在应用程序的主配置文件中。在Web应用程序的情况下,它将是web.config
。
答案 1 :(得分:3)
简短的回答是:你做不到。使用您图书馆的应用程序不会关注您的app.config
。您可以使用settings
文件,也可以更长时间地使用,抽象出配置管理器,并以编程方式将app.config
读取为应用程序输出目录中的XML文件,以包含其设置。可以理解,这两种选择都不理想。
答案 2 :(得分:0)
虽然我不经常使用Web应用程序,但在我的桌面应用程序中,我经常遇到类似的问题。我一直在使用Daniel Hilgarth https://stackoverflow.com/a/6151688/2212458提供的代码来临时切换配置文件。插件加载器可以拉入插件配置文件,然后恢复它自己的。