2015-12-23 8 views
7

#r関数を使用して参照しているdllのapp.configファイルに格納されている接続文字列を使用するVS2015のC#インタラクティブウィンドウでコードを実行しようとしています。C#のインタラクティブウィンドウから設定ファイルにアクセス

ConfigurationManagerには接続文字列がありますが、別の設定ファイルから参照する必要がある別の文字列です。

+2

:あなたはこのようなコンフィギュレーション・ファイルをロードカム

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

組み立てを実行する。アプリケーションがアクセスする接続文字列は、常にアセンブリを実行するapp.configに追加してください。 – Marshal

答えて

0

特定のアセンブリの構成を明示的に読み込んで明示的にアクセスする場合は、ConfigurationManager classOpenExeConfiguration methodを使用できます。

このtest.dll.configの設定ファイルでTEST.DLLアセンブリを取る: `ConfigurationManager`はapp.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" 
+0

それは設定の詳細を取得しますが、私が参照しているコードの設定の設定とマージしません。私は、構成設定を実行中のアセンブリ設定とマージするか、Roslynが使用している設定ファイルを編集する必要があります。それがどこにあるのかわからない... –

+0

"Roslyn"とは関係ありません。 "Roslyn"はコンパイラであり、設定の読み込みはランタイム機能です。 –

+0

それが私が明示した理由です。あなたは、そのファイルからのコンフィギュレーションをロードされたcondiguration 'System.Configuration.ConfigurationManager.GetSection(" yoursection ")'に注入しようとすることができます。しかし、その設定が読み取り専用の場合は動作しません。あるいは、csi.exeとcsi.exe.configをつかんで設定を追加することもできます。 –

関連する問題