私はMEFを使って拡張可能なメトロアプリを作成しようとしています。私はローカルの拡張機能(現在のアセンブリの内部)で動作させました。今私は、外部DLLをロードしたい。 DirectoryCatalog
が.net 4.5に存在しないようです。だからApplicationCatalog
を使用しようとしましたが、SatisfyImportsOnce
:Assembly.LoadFrom is not supported in AppX.
を呼び出す際に次のエラーが発生しました。メトロアプリからMEFを使用してdllをロード/インポートするにはどうすればよいですか?
ここで私はコードです:
var catalog = new AssemblyCatalog(GetType().GetTypeInfo().Assembly);
ApplicationCatalog catApp = new ApplicationCatalog();
AggregateCatalog cat = new AggregateCatalog(catalog, catApp);
_compositionService = cat.CreateCompositionService();
_compositionService.SatisfyImportsOnce(this);
任意の提案間違って何が起こっているのか?
私はAppxディレクトリにdllを置き、VS11 Betaを管理者として実行しました。
dllのプロジェクトをWindows Metroスタイルのクラスライブラリとして作成しました。 –
ああ、申し訳ありません、私はそれを逃した。出力をWinMDファイルに設定しましたか? http://sempf.net/post/Referencing-a-C-class-library-in-HTML5-Metro-UI.aspx –
WinMDファイルはWinRTインターフェイスのみを実装することが許可されているため、いいえ、私はしませんでした。しかし、私のクラスは、コアプロジェクトのIExtensionインターフェイスを実装しています(リンクされたアーティクルの最後の文を参照)。私は、インポート/エクスポートのためにこのインタフェースが必要だと思うか、それとも私が逃した他の方法はありますか? –