2015-01-27 7 views
3

Как я могу прочитать другое приложение для получения connectionString .. У меня есть путь к файлу web.config Но в нем есть несколько строк подключения, и я хочу получить только незаписанные строка подключения.Чтение другого приложения Web.Config для получения ConnectionString

<connectionStrings> 
    <add name="DbConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\abcd\Data\abcd.accdb;" providerName="System.Data.OleDb"/> 
    <!--<add name="DbConString" connectionString="Persist Security Info=False;User ID=sa;Password=123;Initial Catalog=abc;Data Source=afrt-WIN7JPN-80\SQLEXPRESS" providerName="System.Data.SqlClient"/>--> 
</connectionStrings> 

Как я могу получить не прокомментировал DbConString

+0

Возможный дубликат [Использование диспетчера конфигурации для чтения из нескольких файлов web.config] (http://stackoverflow.com/questions/12062045/using-configurationmanager-to-read-from-multiple-web-config-files) –

ответ

1

Совершено просто чтение Web.Config с XmlDocument

string connStr = ""; 
XmlDocument xdoc = new XmlDocument(); 
xdoc.Load(WebConfigPath); 
XmlNode xnodes = xdoc.SelectSingleNode("/configuration/connectionStrings"); 

    foreach (XmlNode xnn in xnodes.ChildNodes) 
    { 
    if (xnn.NodeType == XmlNodeType.Comment) 
    { 
    } 
    else 
    { 
     connStr = xnn.Attributes["connectionString"].Value.ToString(); 
    } 
    } 
1

Вы можете попробовать это

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

Как показано here!

+0

Он покажет все строки соединения, не так ли? –

+0

Этот код был тем, что я искал, и с этой строкой мне удалось получить строки подключения как объекты данных, такие как normal: 'var section = (ConnectionStringsSection) configFile.GetSection (" connectionStrings ");' – davesw

Смежные вопросы