Как проанализировать app.config с помощью ConfigurationManager? - PullRequest
2 голосов
/ 10 мая 2010

Я использовал определенный метод для анализа моего файла app.config. Тогда мне сказали, что использование ConfigurationManager лучше и проще. Но дело в том, что я не знаю, как это сделать с помощью ConfigurationManager.

Мой оригинальный код выглядел так:

   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? (Потому что все, что я могу видеть, это как получить ключи, а не узлы ..)

Спасибо

Ответы [ 2 ]

4 голосов
/ 10 мая 2010

Создайте класс, который наследует ConfigurationSection с именем, скажем, MyConfigSection. Затем вы можете использовать метод ConfigurationManager.GetSection, чтобы получить экземпляр вашего MyConfigSection класса. ConfigurationManager выполнит весь анализ, поэтому у вас будет строго типизированный объект для работы. Вот отличный пример для подражания.

2 голосов
/ 10 мая 2010

Если вас интересуют пользовательские разделы, создайте свой собственный класс, используя класс раздела Configuration. Здесь - пример использования.

...