8

我以前多次使用过这两个配置文件,但我从未花时间完全了解它们的实际工作原理。和大多数人一样,我了解如何调用WebConfigurationManager.AppSettings["key"]以获取配置值的基础知识。

以下是我提出的一些问题:

  1. 当您在类库中引用配置值时会发生什么,并且该库是更大解决方案的一部分?是否需要将 app.config 复制到输出目录才能找到变量?(我假设是的)
  2. 您可以直接使用另一个类库中 app.config 中的配置值吗?
  3. 假设问题 3 是“是”,如果来自不同库的多个 app.config 文件包含具有相同键的配置值,会发生什么情况?
  4. 当您引用 web.config 但在类库中时会发生什么?
  5. 当您引用 app.config 但在网站或 Web 应用程序项目中时会发生什么?
4

2 回答 2

4

您所有问题的基本答案都是相同的:除非您设置了一些不寻常的东西,否则项目中的所有程序集都将从同一个配置文件中读取。在 Web 应用程序中,它们都将从“web.config”中读取。在任何其他项目类型中,它们将从起始程序集的配置文件中读取。

于 2009-07-27T15:07:25.130 回答
4

使用的 app/web.config 是启动进程的那个。如果我举个例子会更容易:

  • 假设解决方案中的所有项目都有一个应用程序或 web.config。
  • 项目A中的测试调用项目B中的代码,该代码调用项目C中的 Web 服务,该 Web 服务调用项目D中的代码。

在这种情况下,项目AB中的代码将使用项目A中的 app.config 。项目CD中的代码将使用项目C中的 web.config 。

于 2009-07-27T15:12:02.907 回答