最近项目中用ABP框架进行开发,将菜单提出到XML文件进行存储,方便后期菜单灵活组合,现将abp动态菜单加载部分代码贴出与大家分享:
public class MyNavigationProvider : NavigationProvider
{
public override void SetNavigation(INavigationProviderContext context)
{
string menuconfigPath = System.Configuration.ConfigurationManager.AppSettings["MenuConfigFile"];
if (string.IsNullOrEmpty(menuconfigPath))
{
return;
}
//MyMenuDefinition为自定义菜单实体,包含MenuItemDefinition对象中的部分属性
MyMenuDefinition mainMenu = new MyMenuDefinition();
//从XML中解析菜单信息
mainMenu = Helpers.XmlSerializerHelper.XmlDeserializeFromFile<MyMenuDefinition>(System.Web.HttpContext.Current.Server.MapPath(menuconfigPath), System.Text.Encoding.UTF8);
MenuDefinition mainmenu = context.Manager.MainMenu;
foreach (var item in mainMenu.Items)
{
MenuItemDefinition menu = CreateMenuI