ConfigurationManager.ConnectionStrings 是如何工作的?

How does ConfigurationManager.ConnectionStrings work?

所以我有一个包含 1 个 Class 库和 1 个 MVC 项目的解决方案。 MVC 项目引用 Class 库。 我在 Class 库中创建了一个 ConnectionString class,如下所示:

public static string MyAppConnectionString { get; set; } =
                     ConfigurationManager.ConnectionStrings["MyApp"].ConnectionString; 

一切正常。但我不明白的是 ConfigurationManager.ConnectionStrings 如何知道 Class 库的 app.config 文件和 MVC 项目的 Web.Config 文件的 ConnectionStrings?

ConfigurationManager 针对当前 运行 可执行文件的 app.config 文件,或者在 Web 应用程序的情况下,针对 web.config 文件。它不使用在您的库项目中找到的 app.config。

https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

MVC 应用程序的 web.config 文件 将被 ConfigurationManager 考虑,因此您的连接字符串必须在其中。