2010-05-10 6 views
2

J'utilisais une certaine méthode pour analyser mon fichier app.config. Ensuite, on m'a dit que l'utilisation de ConfigurationManager est meilleure et plus simple. Mais la chose est que je ne sais pas comment le faire avec ConfigurationManager.Comment analyser app.config à l'aide de ConfigurationManager?

Mon code d'origine ressemblait à ceci:

XmlNode xmlProvidersNode; 
    XmlNodeList xmlProvidersList; 
    XmlNodeList xmlTaskFactoriesList; 

    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load("app.config"); 
    xmlProvidersNode = xmlDoc.DocumentElement.SelectSingleNode("TaskProviders"); 
    xmlProvidersList = xmlProvidersNode.SelectNodes("TaskProvider"); 

    foreach (XmlNode xmlProviderElement in xmlProvidersList) 
    { 
     if (xmlProviderElement.Attributes.GetNamedItem("Name").Value.Equals(_taskProvider)) 
     { 
      xmlTaskFactoriesList = xmlProviderElement.SelectNodes("TaskTypeFactory"); 
      foreach (XmlNode xmlTaskFactoryElement in xmlTaskFactoriesList) 
      { 
       if (xmlTaskFactoryElement.Attributes.GetNamedItem("TaskType").Value.Equals(_taskType)) 
       { 
        taskTypeFactory = xmlTaskFactoryElement.Attributes.GetNamedItem("Class").Value; 
       } 
      } 
     } 
    } 

Quelle serait l'équivalent en utilisant ConfigurationManager? (Parce que tout ce que je peux voir comment obtenir les clés non noeuds ..)

Merci

Répondre

4

Créer une classe qui hérite ConfigurationSection appelé, par exemple, MyConfigSection. Ensuite, vous pouvez utiliser la méthode ConfigurationManager.GetSection pour obtenir une instance de votre classe MyConfigSection. Le ConfigurationManager fera tout l'analyse, donc vous aurez un objet fortement typé avec lequel travailler. Here is an excellent example to follow.

+0

Et vous avez dit que c'était plus simple! Merci pour le lien, je vais le lire. –

+1

@Amokrane, ce n'est peut-être pas plus simple la première fois que vous l'utilisez, mais je trouve généralement que c'est une bonne pratique de travailler * avec * le cadre et de ne pas inventer vos propres solutions à des problèmes déjà résolus les gens à Redmond WA ;-) –

+0

Je vous crois :) –

2

Si vous êtes concerné par les sections personnalisées, créez votre propre classe à l'aide de la classe de la section Configuration. Here est un exemple d'utilisation.

Questions connexes