0

我有一个尝试将 XML 文档加载到类中的存储库。在我尝试访问地图配置部分中的后代元素之前,这一切似乎都很好。

这是 XML 文件的结构:

 <apps>
  <item>
    <id>1</id>
    <engineversion>1.0</engineversion>
    <mapconfig>
      <minzoom>3</minzoom>
      <maxzoom>18</maxzoom>
      <startcenterlat>-28</startcenterlat>
      <startcenterlng>135</startcenterlng>
      <startzoom>3</startzoom>
    </mapconfig>
  </item>
</apps>

这是我的控制器上的存储库方法:

public AppRepository()
{
    allApps = new List<App>();

    appData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Apps.xml"));

    var apps = from app in appData.Descendants("item")
                select new App(
                    (int)app.Element("id"),
                    (float)app.Element("engineversion"),
                    new MapConfig (
                        (int)app.Descendants("mapconfig").Descendants("minzoom").FirstOrDefault(),
                        (int)app.Descendants("mapconfig").Descendants("maxzoom").FirstOrDefault(),
                        (float)app.Descendants("mapconfig").Descendants("startcenterlat").FirstOrDefault(),
                        (float)app.Descendants("mapconfig").Descendants("startcenterlng").FirstOrDefault(),
                        (int)app.Descendants("mapconfig").Descendants("startzoom").FirstOrDefault()
                    )
                );

    allApps.AddRange(apps.ToList<App>());

}

这似乎导致 id 和引擎版本值被正确读入 App 对象,但是 MapConfig 对象似乎只是将 0 设置为所有元素的值。

谁能看到我做错了什么?

4

0 回答 0