我有一个用于设置的 XML 文件。这是一个包含一些元素的示例:
<Settings>
<Templates>
<Item name="Home" value="{B0BDB6B6-CB6E-464A-A170-6F88E2B3B10F}" />
<Item name="DevelopmentLanding" value="{3F66C5BA-BE16-4E29-A9D8-0FFBCEA4C791}" />
<Item name="EventsLanding" value="{A1D51F12-D449-4933-8C0E-B236F291D050}" />
</Templates>
<Application>
<Item name="MemberDomain" value="extranet" />
<Item name="SearchCacheHours" value="0" />
<Item name="SearchCacheMinutes" value="10" />
</Application>
</Settings>
我也有两门课:
public class Setting
{
public string Type { get; set; }
public IEnumerable<SettingItem> SettingItems { get; set; }
}
和
public class SettingItem
{
public string Name { get; set; }
public string Value { get; set; }
}
我想获取 XML 文件并使用我的两个类强烈键入它,所以我最终会得到一个List<Setting>
.
这是我到目前为止的代码:
var xml = XDocument.Load(HttpContext.Current.Server.MapPath(AppConfig.SettingsFileLocation));
var root = xml.Root;
var toplevel = root.Elements().AsEnumerable()
.Select(item => new Setting
{
Type = item.Name.ToString(),
SettingItems = item.Elements(item.Name.ToString()).AsEnumerable()
.Select(x => new SettingItem
{
Name = x.Attribute("name").ToString(),
value = x.Attribute("value").ToString()
}
).ToList()
});
但是,当我运行它时,我在Setting.SettingItems
.
我哪里错了?