从另一个项目访问Web.config

时间:2013-04-05 16:22:00

标签: c#

我正在使用Console应用程序为一些半自动化测试编写测试平台,但我需要从我正在测试的项目中获取连接字符串。我不想直接引用其他应用程序,或者在我正在测试的项目中有一个访问者。

到目前为止我设法做的是创建一个指向我的TestUtility项目中其他项目的Web.config文件的链接,并且我已将其设置为Copy if newer。它是我测试项目的根文件夹中唯一的Web.config,但WebConfigurationManager.OpenWebConfiguration(null)似乎打开了一些OTHER Web.config,因为它中唯一的连接字符串是指。\ SQLEXPRESS(不在我的解决方案的任何文件中,我的路径将是。\ sql2008在此配置中 - 这会有所不同。)

有关如何从其他项目访问该配置部分的任何提示或提示?

(耶的第一个问题)

2 个答案:

答案 0 :(得分:19)

迟到总比没有好:

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

虽然我不能为此拍摄,但我发现它here

答案 1 :(得分:3)

我找到的解决方案是将其作为XDocument打开并手动解析:

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

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

虽然如果你有多个连接字符串,你可能希望在.Elements("add")元素上使用connectionStrings方法并迭代各种字符串。