2011-07-18 4 views
1

En essayant de comprendre comment saisir tous les connectionStrings d'un web.config qui a un certain fournisseur, mais s'est coincé.Saisir connectionStrings à partir de web.config basé sur le providername

Les bases de ma méthode ressemble à ce

var webConfig = new ExeConfigurationFileMap { ExeConfigFilename = GlobalSettings.FullpathToRoot + "web.config" }; 
var config = ConfigurationManager.OpenMappedExeConfiguration(webConfig, ConfigurationUserLevel.None); 
var section = (ConnectionStringsSection)config.GetSection("connectionStrings"); 

// some code like 
foreach(var item in section.providerName.equals("sql.provider")) 
... 

Tout conseil est très apprécié!

+0

Où avez-vous coincé? Qu'est-ce qui semble être le problème? – Oded

+0

le problème était que je ne pouvais pas faire de sélections sur les attributs providerName. –

Répondre

1

résolu le problème

public static Dictionary<string,string> ExistingConnections() 
{ 
    var connections = new Dictionary<string, string>(); 
    foreach (ConnectionStringSettings connection in ConfigurationManager.ConnectionStrings) 
    { 
     if(connection.ProviderName == "sql.providername") 
      connections.Add(connection.ProviderName, connection.ConnectionString); 
    } 
    return connections.Count > 0 ? connections : null; 
} 

ou en utilisant LINQ

public static Dictionary<string,string> ExistingConnections() 
{ 
    var connections = ConfigurationManager.ConnectionStrings.Cast<ConnectionStringSettings>().Where(connection => connection.ProviderName == "Camelot.SharePointProvider").ToDictionary(connection => connection.ProviderName, connection => connection.ConnectionString); 
    return connections.Count > 0 ? connections : null; 
} 
Questions connexes