我有三个装配
现在我的问题是在MEF中注册Context,其他实例可以使用IContext来获取它。
我已将属性[Export(typeof(IContext))]
附加到Context。但是当我现在this.Container.GetExportedValue<IContext>()
时,我得到了一个ImportCardinalityMismatchException。
Context的构造函数定义如下
[ImportingConstructor]
public Context(IEventAggregator eventAggregator) { ... }
当我this.Container.GetExportedValue<IEventAggregator>()
进行测试以解析IEventAggregator时,这是有效的。
有人可以帮助我吗,我做错了什么? - 我是否必须在AssemblyX和/或AssemblyY的某处附加?
感谢。 托马斯
答案 0 :(得分:3)
要解析IContext(作为来自assemblyY的Context),Container必须知道AssemblyY(即,关于它的所有可组合部分)。为此,您应该使用适当的目录。或者,如果按需加载AssemblyY,则应在使用Context之前加载它。
答案 1 :(得分:0)
目录MEF中的所有三个组件都在使用吗?
如果这不是问题,请查看How to Debug and Diagnose MEF failures上的博文。