从.NET Source Project读取配置文件,而不是从目标读取

时间:2015-02-03 11:49:42

标签: c# asp.net .net asp.net-mvc

在.NET解决方案中,我们可以从配置文件中读取设置,例如web.configapp.config。但是在使用这些资源时我发现了一个问题。在一个解决方案中,我创建了一个类库项目和一个ASP.NET项目,它们都有一个“something.config”文件。在类库中,它被称为App.Config,在ASP.NET中,显然是Web.config

我在类库项目的类中创建了一个方法,并在ASP.NET中调用它。这些方法从app.config获取一些设置,但是如果我尝试在我的Web项目中使用,那么在ASP.NET项目中从web.config读取的方法是不可取的。

如何让类库项目中的方法从相应的项目中读取App.Config,而不是从Web项目中读取?

2 个答案:

答案 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