有人可以提供一个快速的 App.config/Web.config 教程吗?
我以前多次使用过这两个配置文件,但我从未花时间完全理解它们的真正工作原理。 和大多数人一样,我了解如何调用 WebConfigurationManager.AppSettings["key"] 来获取配置值的基础知识。
以下是我提出的一些问题:
- 当您引用类库中的配置值并且该库是更大解决方案的一部分时会发生什么? 是否需要将 app.config 复制到输出目录才能找到变量? (我假设是)
- 您可以直接使用另一个类库中的 app.config 中的配置值吗?
- 假设问题 3 为“是”,如果来自不同库的多个 app.config 文件包含具有相同键的配置值,会发生什么情况?
- 当您在类库中引用 web.config 时会发生什么?
- 当您在网站或 Web 应用程序项目中引用 app.config 时会发生什么?
I've used these two configuration files many times before, but I've never taken the time to fully understand how they really work. As most people do, I understand the basics in how to call WebConfigurationManager.AppSettings["key"]
to get config values.
Here are some questions I came up with:
- What happens when you reference a configuration value within a class library, and the library is part of a bigger solution? Does the app.config need to be copied to the output directory in order for the variables to be found? (I assume yes)
- Can you directly use a configuration value from an app.config in another class library?
- Assuming question 3 is "yes", what happens if there are multiple app.config files from different libraries containing configuration values with the same key?
- What happens when you reference the web.config, but in a class library?
- What happens when you reference the app.config, but in a website or web application project?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
所有问题的基本答案都是相同的:除非您设置了一些不寻常的东西,否则项目中的所有程序集都将从同一配置文件中读取。 在网络应用程序中,它们都将从“web.config”中读取。 在任何其他项目类型中,它们将从起始程序集的配置文件中读取。
The underlying answer to all of your questions is the same: Unless you set up something unusual, all assemblies in your project will read from the same configuration file. In a web app, they will all read from "web.config". In any other project type, they will read from the starting assembly's config file.
使用的 app/web.config 是启动该进程的配置。 如果我举个例子会更容易:
在这种情况下,项目 A 和 B 中的代码将使用项目 A 中的 app.config。 项目 C 和 D 中的代码将使用项目 C 中的 web.config。
The app/ web.config that is used is the one that starts the process. Easier if I give an example:
In this case code in project A and B will use the app.config in project A. Code in project C and D will use the web.config in project C.