有人可以提供快速的App.config / Web.config教程吗?

时间:2009-07-27 14:59:55

标签: c# appsettings application-settings configurationmanager webconfigurationmanager

之前我曾多次使用过这两个配置文件,但我从未花时间充分了解它们的工作原理。正如大多数人所做的那样,我理解了如何调用WebConfigurationManager.AppSettings["key"]来获取配置值的基础知识。

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

  • 假设解决方案中的所有项目都有app或web.config。
  • 项目中的测试 A 调用项目 B 中的代码,该代码调用项目 C 中的Web服务,该项目调用项目中的代码 d 即可。

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