как загрузить файл конфигурации xml в asp.net проект

#asp.net #configuration

#asp.net #конфигурация

Вопрос:

У меня есть некоторая конфигурация, которую нужно прочитать один раз, поэтому я помещаю эти атрибуты в XML-файл:

 <items>
  <item id="" name="">
    <page src=""/>
    <page src=""/>
    <page src=""/>
  </item>

  <item id="" name="">
    <page src=""/>
    <page src=""/>
    <page src=""/>
  </item>
............
</items>
  

В Java я могу прочитать этот файл в методе init сервлета, используя jdom или dom4j.
Затем поместите эти атрибуты в список или карту.

Но в asp.net Я понятия не имею, как это реализовать, есть предложения?

Ответ №1:

Предполагается, что вы используете c #. Он в основном считывает xml с использованием linq to xml в определенные классы. Затем GetConfigItems вернет список<> элементов. Я не тестировал это, но это в правильном направлении.

 public class Item
{
    public string id { get; set; }
    public string name { get; set; }
    public List<Page> Pages { get; set; }
}

public class Page
{
    public string src { get; set; }
}

public class ConfigHelper
{
    public List<Item> GetConfigItems()
    {
        XDocument doc = XDocument.Load("MyConfigFile.xml");
        List<Item> items = (from i in doc.Elements("item")
                            select new Item()
                                {
                                    id = i.Attribute("id").Value,
                                    name = i.Attribute("name").Value,
                                    Pages = (from p in i.Elements("page")
                                             select new Page()
                                             {
                                                 src = p.Attribute("src").Value
                                             }).ToList()
                                }
                           ).ToList();

    }
}
  

Ответ №2:

Дэвид Дуге здесь на правильном пути. Однако его метод ConfigHelper GetConfigItems() должен быть структурирован следующим образом:

 public List<Item> GetConfigItems()
    {
        XDocument doc = XDocument.Load("MyConfigFile.xml");
        List<Item> items = (from i in doc.Descendants("item")
                            select new Item()
                            {
                                id = i.Attribute("id").Value,
                                name = i.Attribute("name").Value,
                                Pages = (from p in i.Descendants("page")
                                         select new Page()
                                         {
                                             src = p.Attribute("src").Value
                                         }).ToList()
                            }).ToList();
        return items;
    }