12

コンソール アプリケーションを使用して半自動テスト用のテスト プラットフォームを作成していますが、テストしているプロジェクトから接続文字列を取得する必要があります。他のアプリケーションを直接参照したり、テスト中のプロジェクトにアクセサーを追加したりしたくありません。

これまでのところ、TestUtility プロジェクトで他のプロジェクトの Web.config ファイルへのリンクを作成し、それを に設定しましたCopy if newer。テスト プロジェクトのルート フォルダーにある唯一の Web.config ですが、WebConfigurationManager.OpenWebConfiguration(null)その中の唯一の接続文字列が .\SQLEXPRESS を参照しているため、他の Web.config を開いているようです (私のソリューションのどのファイルにもありません。私のパスは .この構成では \sql2008 - これは異なります)。

別のプロジェクトからその構成セクションにアクセスする方法に関するヒントやヒントはありますか?

(イェーイ最初の質問)

4

2 に答える 2

22

遅刻しないよりはマシ:

var filePath = @"D:\PathToConfig\Web.config";
var map = new ExeConfigurationFileMap { ExeConfigFilename = filePath };
var configFile = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

私はこれの信用を取ることはできませんが、私はそれをここで見つけました!

于 2014-07-01T13:30:41.473 に答える
3

私が見つけた解決策は、それを として開き、XDocument手動で解析することでした:

        XDocument xdoc = XDocument.Load("Test/Web.config");

        var path = xdoc.Element("configuration").Element("connectionStrings").Element("add").Attribute("connectionString").Value;

ただし、複数の接続文字列がある場合は.Elements("add")、要素に対してメソッドを使用connectionStrings し、さまざまな文字列を反復処理する必要があります。

于 2013-04-05T17:19:18.553 に答える