using System.Collections.Generic; using Abp.Configuration.Startup; using Abp.Dependency; using Abp.Localization; namespace Abp.Application.Navigation { internal class NavigationManager : INavigationManager, ISingletonDependency { public IDictionary Menus { get; private set; } public MenuDefinition MainMenu { get { return Menus["MainMenu"]; } } private readonly IIocResolver _iocResolver; private readonly INavigationConfiguration _configuration; public NavigationManager(IIocResolver iocResolver, INavigationConfiguration configuration) { _iocResolver = iocResolver; _configuration = configuration; Menus = new Dictionary { {"MainMenu", new MenuDefinition("MainMenu", new LocalizableString("MainMenu", AbpConsts.LocalizationSourceName))} }; } public void Initialize() { var context = new NavigationProviderContext(this); foreach (var providerType in _configuration.Providers) { using (var provider = _iocResolver.ResolveAsDisposable(providerType)) { provider.Object.SetNavigation(context); } } } } }