自定义XML:
<BrowsableGroups>
<BrowsableGroup Name="CSS">
<Path Type="directory" Value="Content"/>
<Path Type="file" Value="Content/test.css"/>
</BrowsableGroup>
<BrowsableGroup Name="CSHTML">
<Path Type="directory" Value="Views/Home"/>
<Path Type="directory" Value="Views/Admin"/>
</BrowsableGroup>
</BrowsableGroups>
代码:这是我现在使用的代码,它使用一个单独的xml文件,使用Linq to XML,效果很好。但要求是在Web.Config中包含此部分。 我已经尝试了超过4天,但没有完全做到。
public class BrowsableGroups
{
public List<BrowsableGroup> Groups { get; set; }
public static List<BrowsableGroup> GetAllBrowsablePaths()
{
XDocument document = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/settings.xml"));
var groups = document.Descendants("BrowsableGroup")
.Select(p => new BrowsableGroup()
{
Name = p.Attribute("Name").Value,
Paths = p.Elements("Path").Select(m => new Path() { Type = m.Attribute("Type").Value, Value = m.Attribute("Value").Value }).ToList()
}).ToList();
return groups;
}
}
public class BrowsableGroup
{
public string Name { get; set; }
public List<Path> Paths { get; set; }
}
public class Path
{
public string Type { get; set; }
public string Value { get; set; }
}
任何帮助都非常感激。
答案 0 :(得分:2)
自定义配置部分非常容易创建。有大量关于如何在Google上进行此操作的示例。
您想要为外部创建一个ConfigurationSection类,为您的2个集合创建一个ConfigurationElementCollection&amp;每个项目的ConfigurationElement类。
您的配置会略有不同,因为默认情况下,该集合使用<add/>
,<remove/>
&amp; <clear/>
元素