我有一个存储库,试图将XML文档加载到类中。在我尝试访问map config部分中的后代元素之前,这一切似乎都没有问题。
这是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设置为所有元素的值。
谁能看到我做错了什么?