1

私は 3 つのプロジェクト、viz Shell.CoreShell、およびを持っていServices.Employeesます。ShellからパーツをインポートしますServices.Employees。つまり、後者のプロジェクトは外部にあり、どのソリューション プロジェクトでも参照されません。と同様にShell、「Shell.Core」もクラス ライブラリではなく WPF アプリケーションです。特定の共有 UI コンポーネントを定義するため、DevExpress のプロジェクト タイプとして開始し、すべての正しい参照を含めました。

Services.EmployeesCoreは、使用する特定の基本クラスを定義する を参照します。ここで、スタートアップ アプリケーションShellが をロードする必要がCoreあり、次に MEF 構成を実行Services.Employeesして DirectoryCatalog からパーツをロードしますが、MEF は依存関係を認識Coreし、そのカタログからそれらをロードしようとしますが、ホスト アプリケーションは既にこれらのCore依存関係を参照しています。

例として、合成を試みると、次のようなエラーが発生します。

例外: 'TypeLoadException': アセンブリ 'XTime900.Shell.Core、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' から型 'Shell.Core.MappedViewModel`1' を読み込めませんでした。

これから抜け出す方法は何ですか?Shell.Core.MappedViewModel既に参照プロジェクトにあるのに、もインポートする必要がありますか? クラス ライブラリに変換Coreする必要があります。カタログ ディレクトリに DLL として表示され、MEF はそれを の依存関係としてロードしServices.Employeesますか? この粘着性の小さな問題を回避する他の方法はありますか?

4

1 に答える 1

0

これが起こったようです。Shell.Core.MappedViewModel1, referenced by the plugins, loaded the ViewModel types. Then, the MEF plugins referenced this project, and during composition, couldn't find the right objects. When I factored View Models out into a separate project, referenced by bothCore` と MEF のインポートは、すべて正常に機能しました。

于 2013-11-16T04:15:00.667 に答える