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() を呼び出します。

メニューがロードされた後、シェルにメニューを設定できます (ServiceLocator.Current を介して ModuleCatalog を取得します)。OnPopup イベントでメニューに設定することもできます。

于 2010-10-13T23:06:10.500 に答える