现在我正在开发使用 MEF 和 MVVM 轻型工具包的较新应用程序,我遇到了无法加载特定插件的情况,因为它们依赖于未导出的部分。该部分没有被导出,因为它是一个视图,并且该视图尚未通过 MEF 解析。
似乎每次玩MEF时,我都需要将部件组合步骤(即创建容器、目录,然后组合部件)越来越靠近主应用程序。我相信我现在就是那个时候。但是,问题是我不确定该放在哪里。
我想把它放在 MainWindow,我相信它是由 MVVM light takeit 项目模板创建的。我Export
在 MainViewModel 和 Model 上使用了该属性。我在 ViewModelLocator 中导入 ViewModel,并在 ViewModel 中导入模型。对我来说,这似乎足以确保所有内容都正确组合。然而,虽然 ViewModel 是正确组合的(它命中了它的构造函数),但 Model不是. 我在合成过程中检查了输出窗口,但那里没有出现任何 MEF 错误。
总而言之,这些是我的问题: 1. 组成部分的“正确”位置在哪里?在 WPF / MVVM 的情况下,它总是在应用程序的开头吗?2. 在输出窗口中没有 MEF 错误的情况下,还有哪些其他技术可以找出问题没有得到解决的原因?通常,我会一路浏览 Compose 以尝试获得一些见解。还有比这更好的调试技术吗?3. 你能想到为什么我的模型加载不出来吗?4、有没有好的MEF+MVVM轻工具包项目可以下载学习?