在我的测试应用程序中,ModuleCatalog从指定的目录填充,其中包含我的所有模块。我想要做的是将所有这些模板的名称添加到菜单中作为菜单项,例如如果我在目录中有3个模块,菜单将显示3个菜单项,其名称为模块。 我想我可以得到如下的ModuleInfo列表。但miList显示0计数。这有什么问题?
protected override void ConfigureModuleCatalog()
{
DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog()
{ ModulePath = @".\Modules" };
((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);
List<ModuleInfo> miList = ModuleCatalog.Modules.ToList() ; // returns 0 items ??
}
答案 0 :(得分:0)
在引导过程中稍后运行InitializeModules之后,将填充模块列表。 InitializeModules调用ModuleManager.Run()。
您可以在加载后填充shell中的菜单(通过ServiceLocator.Current获取ModuleCatalog)您还可以在OnPopup事件中填充菜单。