C# 如何使用ConfigurationManager加载dll配置?

C# 如何使用ConfigurationManager加载dll配置?,c#,.net-core,C#,.net Core,我在一个解决方案中有两个项目;一个是dll项目,另一个是web API。都是.NET内核 当我测试dll或编译它并作为控制台应用程序运行时,配置工作正常。当我从web API引用它时,所有内容都会生成,并且生成的.dll.config被放置在正确的位置。查看AppDomain.CurrentDomain.SetupInformation.ApplicationBase可以得到预期的路径 但是,当我在调试中运行web API并在引用的项目中遇到断点时,在ConfigurationManager.A

我在一个解决方案中有两个项目;一个是dll项目,另一个是web API。都是.NET内核

当我测试dll或编译它并作为控制台应用程序运行时,配置工作正常。当我从web API引用它时,所有内容都会生成,并且生成的.dll.config被放置在正确的位置。查看AppDomain.CurrentDomain.SetupInformation.ApplicationBase可以得到预期的路径

但是,当我在调试中运行web API并在引用的项目中遇到断点时,在ConfigurationManager.Appsettings中找不到任何预期设置

我是否忽略了什么,或者在将ConfigurationManager用作DLL时是否需要为其指定configfile

使用普通方法检索配置对象时,返回的对象将绑定到正在其中执行的应用程序域的配置,而不是特定程序集

有关更多详细信息,请参阅

但简而言之,ConfigurationManager.Appsettings始终读取主应用程序的配置文件,但您仍然可以通过以下方式读取dll配置:

var config = ConfigurationManager.OpenExeConfiguration("foo.dll");