2010-05-10 25 views
2

我正在使用某种方法来解析我的app.config文件。然后我被告知使用ConfigurationManager更好更简单。但事情是我不知道如何使用ConfigurationManager来完成它。如何使用ConfigurationManager解析app.config?

我原来的代码是这样的:

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; 
       } 
      } 
     } 
    } 

会是什么使用ConfigurationManager中相同呢? (因为我能看到的是如何得到钥匙未结点..)

感谢

回答

4

创建一个继承ConfigurationSection调用,比如一类,MyConfigSection。然后,您可以使用ConfigurationManager.GetSection方法获取MyConfigSection类的实例。 ConfigurationManager将执行所有解析,因此您将拥有一个强类型对象。 Here is an excellent example to follow.

+0

你说这简单了! 谢谢你的链接,我会读它。 – 2010-05-10 16:31:55

+1

@Amokrane,第一次使用它可能并不简单,但我通常会发现这是一个很好的做法,可以通过*框架来工作,而不是为已经解决的问题创建自己的一半解决方案在Redmond WA的人;-) – 2010-05-10 16:34:21

+0

我相信你:) – 2010-05-10 16:48:21

2

如果您担心自定义部分使用配置节类创建自己的类。 Here是一个关于使用它的例子。

相关问题