既然我正在开发使用MEF和MVVM轻量级工具包的新应用程序,我遇到了一个无法加载特定插件的情况,因为它们依赖于未导出的部分。那个部分没有导出,因为它是一个View,而且还没有用MEF解析View。
似乎每次我玩MEF时,我都需要将部件组合步骤(即创建容器,目录,然后组成部件)移近主应用程序。我相信我现在正处于这一点。然而,问题是我不确定在哪里放置它。
我想把它放在MainWindow上,我相信它是由MVVM light takeit项目模板创建的。我在MainViewModel和Model上使用了Export
属性。我在ViewModelLocator中导入ViewModel,然后在ViewModel中导入Model。对我来说,这似乎足以确保一切都得到正确的组合。但是,虽然ViewModel组合正确(它击中了它的构造函数),但模型不是。我在合成期间检查了输出窗口,我没有得到任何MEF错误。
总而言之,这些是我的问题: 1.构成零件的“正确”地点在哪里?在WPF / MVVM案例中,它总是在应用程序的开头吗? 2.在输出窗口中没有MEF错误的情况下,有哪些其他技术可以找出解决问题的原因?通常情况下,我会一直走过Compose,试图获得一些见解。有比这更好的调试技术吗? 你能想到为什么我的模型不会加载吗? 4.我可以下载学习的MEF + MVVM轻型工具包项目吗?
答案 0 :(得分:0)
只需使用MEFedMVVM,您就不会遇到任何这些问题。顾名思义,它已经从头开始构建,以解决您提到的问题类型。它还有很多用于构建mvvm应用程序的宝贵功能。祝你好运。