Accessing Web.config from another Project

匿名 (未验证) 提交于 2019-12-03 02:06:01

问题:

I am writing a test platform for some semi-automated testing using a Console application, but I need to get the connection string from the project I am testing. I don't want to reference the other application directly or otherwise have an accessor in the project I'm testing.

What I've managed to do so far is create a link to the other project's Web.config file in my TestUtility project, and I've set it to Copy if newer. It's the only Web.config in my test project's root folder, but WebConfigurationManager.OpenWebConfiguration(null) seems to be opening some OTHER Web.config, as the only connection string in it refers to .\SQLEXPRESS (not in any file in my solution, my path would be .\sql2008 in this configuration - which varies).

Any hints or tips as to how to access that config section from another project?

(Yay first question)

回答1:

Better late than never:

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

I can't take the credit for this one though, I found it here!



回答2:

The solution I found was to open it as an XDocument and parse it manually:

        XDocument xdoc = XDocument.Load("Test/Web.config");          var path = xdoc.Element("configuration").Element("connectionStrings").Element("add").Attribute("connectionString").Value; 

Though if you had multiple connection strings, you would want to use the .Elements("add") method on the connectionStrings element and iterate over the various strings.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!