2009-03-09 10 views

Répondre

2

Après avoir essayé, mais très rapidement, toutes les suggestions ci-dessus, avec des degrés d'échec, j'ai utilisé un XmlDocument et XPath, et fait le travail avec deux lignes de code et un espace de noms importé, sans nécessiter de références d'assembly supplémentaires.

WebConfigurationManager.OpenWebConfiguration("/", "My Website", null) 

requires au-dessus d'un chemin virtuel, ce qui signifie quoi une application WinForms? J'ai déclaré que j'avais besoin d'ouvrir un web.config 'dans une application WinForms'.

Et j'ai amélioré mon XPath an iota. :-)

0

Hum, avez-vous essayé de:

Using System.Web.Configuration; 

ou

Using System.Configuration; 

avec que vous aurez devrait avoir accès à l'objet ConfigurationManager qui vous donnera accès au fichier web.config.

1

Vous pouvez utiliser le WebConfigurationManager.OpenWebConfiguration method dans l'espace de noms System.Web.Configuration.

Exemple:

System.Configuration.Configuration config = 
     WebConfigurationManager.OpenWebConfiguration("/", "My Website", null) as System.Configuration.Configuration; 

KeyValueConfigurationCollection appSettings = config.AppSettings.Settings; 

Cela devient le bloc appSettings du site «Mon site Web. Il suffit de modifier le premier paramètre qui est le chemin virtuel du fichier de configuration.

2

Vous devez ajouter une référence à System.Web alors va irait quelque chose comme:

using System.Web.Configuration 
WebConfigurationManager webCfg = WebConfigurationManager.OpenWebconfiguration("/WebApp"); 

// Edit/Query the configuration 
webConfig.AppSettings.Settings.Add("NewSetting","SomeValue"); 
webConfig.AppSettings.SectionInformation.ForceSave = true; 

webConfig.Save(); 

Si vous souhaitez accéder à une section de configuration qui ne dispose pas d'une interface publique comme system.diagnostics vous peut utiliser les classes de configuration génériques. Ajouter une référence à System.Configuration et essayer quelque chose comme:

ConfiguationSection sysDiagnostics = webConfig.GetSection("system.diagnostics"); 
ConfigurationElementCollection sources = sysDiagnostics.ElementInformation.Properties["sources"].Value as ConfigurationElementCollection; 
foreach (ConfigurationElement source in sources) 
{ 
    ConfigurationElementCollection listeners = source.ElementInformation.Properties["listeners"].Value as ConfigurationElementCollection; 
    foreach (ConfigurationElement listener in listeners) 
    { 
     Console.WriteLine(listener.ElementInformation.Properties["name"].Value.ToString()); 
    } 
} 
Questions connexes