为什么在ViewModelLocator中将MEF用于设计时/运行时?

时间:2013-02-13 02:15:50

标签: mvvm runtime inversion-of-control mef design-time

我已经阅读了很多文章,其中在ViewModelLocator中使用MEF来分隔设计时数据和运行时数据(具体来说,导入设计ViewModel和运行时ViewModel)。 (我在谈论MVVM-light框架中的VMLocator)

MEF是一项出色的技术,但它不是为未知的依赖项而设计的吗?显然,设计时/运行时ViewModel是应该由纯IOC容器处理的已知依赖项。

请有人解释一下吗?感谢

1 个答案:

答案 0 :(得分:2)

是的,MEF主要是针对未知的依赖项而设计的,但它也可以用于已知的依赖项。几个月前,我在MEF上建立了一个有效的服务定位器。

我看到为什么在这里使用MEF是有意义的几个原因:

我认为人们选择MEF的原因是它提供了这些MVVM模式和场景所需的所有功能,并且可以随时使用。并不是说它必然是该领域最好的。

这几乎不是你想要的,但我以类似的方式使用了MEF,所以我添加了一个观点:)