在.NET解决方案中,我们可以从配置文件中读取设置,例如web.config
或app.config
。但是在使用这些资源时我发现了一个问题。在一个解决方案中,我创建了一个类库项目和一个ASP.NET项目,它们都有一个“something.config”文件。在类库中,它被称为App.Config
,在ASP.NET中,显然是Web.config
。
我在类库项目的类中创建了一个方法,并在ASP.NET中调用它。这些方法从app.config
获取一些设置,但是如果我尝试在我的Web项目中使用,那么在ASP.NET项目中从web.config
读取的方法是不可取的。
如何让类库项目中的方法从相应的项目中读取App.Config
,而不是从Web项目中读取?
答案 0 :(得分:1)
这取决于您正在运行的应用程序。
Web应用程序是入口点,因此它将使用web.config。
您可以将app.config中包含的值/部分放入web.config中,然后阅读它。
在挖掘出配置管理器类后,我添加了以下内容来读取与程序集关联的配置文件。
var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
var tempValue = config.AppSettings["setting_name"];
答案 1 :(得分:0)
App.config
默认情况下,类库项目中的位置不会加载。将加载的唯一配置文件是客户端配置(web.config
)。
配置项目以加载app.config
的本地类库配置文件。
您需要以下代码才能执行此操作:
ConfigurationManager.OpenMappedExeConfiguration(
new ExeConfigurationFileMap() {
ExeConfigFilename = path + "app.config"
}, ConfigurationUserLevel.None);
有关详细信息,请访问this answer。