我有一个尝试将 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 设置为所有元素的值。
谁能看到我做错了什么?