0

在我的测试应用程序中,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 ??
    }
4

1 回答 1

0

模块列表将在 InitializeModules 稍后在引导过程中运行后填充。InitializeModules 调用 ModuleManager.Run()。

你可以在你的 shell 加载后填充你的菜单(通过 ServiceLocator.Current 获取 ModuleCatalog) 你也可以在 OnPopup 事件中填充你的菜单。

于 2010-10-13T23:06:10.500 回答