2

私のアプリには、シェルから直接参照しているモジュールがあります(動作している間)。

すなわち

protected override void ConfigureAggregateCatalog()
    {
        base.ConfigureAggregateCatalog();

        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly));            
        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(MyModule).Assembly));
    }

私のモジュールでは、ビューに対してSatisfyImportsOnceを呼び出しているときにこれが機能し、ビューモデルなどが作成されているのを確認できます。

ただし、モジュールにdirectoryCatalogを使用するようにブートストラッパーを変更しました。モジュールアセンブリ、pdbなどをシェルにコピーするためのビルド後のイベントをいくつか追加しました。

だから今、私は私のブートストラッパーに次のものを持っています

protected override void ConfigureAggregateCatalog()
    {
        base.ConfigureAggregateCatalog();

        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly));

        // add the directory catalog for the modules
        AggregateCatalog.Catalogs.Add(new DirectoryCatalog("Modules"));
    }

これで、アプリを実行してモジュールからのビューを確認できますが、以前は機能していたSatisfyImportsOnceは何もしないようです。エラーが表示されません。ディレクトリカタログを使用しているので、インポート/エクスポートに必要なさまざまな属性はありますか?

ありがとう。

4

1 に答える 1

0

いいえ、使用する必要のある属性に違いはありません。

何が問題なのかを判断するのは難しいです。ここに、一般的なMEFデバッグに関するブログ投稿があります。

于 2011-04-07T02:05:39.607 に答える