从c#交互式窗口访问配置文件

从c#交互式窗口访问配置文件,c#,visual-studio-2015,roslyn,c#-interactive,C#,Visual Studio 2015,Roslyn,C# Interactive,我试图在VS2015 c#interactive窗口中运行一些代码,该窗口使用存储在dll的app.config文件中的连接字符串,我正在使用#r函数引用该dll 如果我查看ConfigurationManager中有一个连接字符串,但它是另一个连接字符串,它必须从另一个配置文件引用。如果要显式加载特定程序集的配置并显式访问它,可以使用的 使用此test.dll.config配置文件获取test.dll程序集: <configuration> <connectionStri

我试图在VS2015 c#interactive窗口中运行一些代码,该窗口使用存储在dll的app.config文件中的连接字符串,我正在使用
#r
函数引用该dll


如果我查看
ConfigurationManager
中有一个连接字符串,但它是另一个连接字符串,它必须从另一个配置文件引用。

如果要显式加载特定程序集的配置并显式访问它,可以使用的

使用此test.dll.config配置文件获取test.dll程序集:

<configuration>
  <connectionStrings>
    <add
       name="MyConnectionString"
       connectionString="my connection string"
       providerName="System.Data.SqlClient"
   />
  </connectionStrings>
</configuration>

ConfigurationManager
访问执行程序集的app.config。始终添加应用程序访问执行程序集的app.config的连接字符串。这会获取配置详细信息,但不会将其与我调用的代码引用的配置设置合并。我需要将配置设置与执行程序集设置合并,或者需要编辑Roslyn正在使用的配置文件。不知道那是在哪里…“Roslyn”与此无关。“Roslyn”是编译器,配置加载是运行时特性。这就是为什么我明确地说。您可以尝试将该文件中的配置注入加载的条件配置
System.configuration.ConfigurationManager.GetSection(“yoursection”)
。但如果该配置是只读的,那么这将不起作用。或者您可以获取csi.exe和csi.exe.config并将配置添加到其中。
> #r "c:\temp\test.dll"
> #r "System.Configuration"
> using System.Configuration;
> ConfigurationManager.OpenExeConfiguration(@"c:\temp\test.dll").ConnectionStrings.ConnectionStrings["MyConnectionString"].ConnectionString
"my connection string"