我在使用MEF的应用程序中收到以下错误:
目前正在撰写另一个批次 这个ComposablePartExportProvider。 只有一个批次可以在a组成 时间。
关于如何解决此错误的信息似乎很少,并且不确定我应该提供哪些其他信息来获得一些帮助。
有没有其他人使用MEF收到此错误?如果是这样,你解决这个问题的方法是什么?
答案 0 :(得分:4)
看看this forum post。听起来像你遇到的问题一样。
答案 1 :(得分:1)
我发现,如果您尝试构建导出列表以便动态匹配导入类型,container.GetExports<T>().Select(y => y.Value)
的效果会更好。
使用container.ComposeParts(...)
我必须拥有各种lock(){}
块和另一个线程来进行编写。 GetExports<>
似乎没有受此影响。
答案 2 :(得分:0)
在初始化组合容器时,有一个标志可启用线程安全选项。一旦启用此功能,您就不需要任何自定义锁定机制
var c = new AggregateCatalog();
c.Catalogs.Add(new AssemblyCatalog("MyAssemblyName"));
var container = new CompositionContainer(c, true); // true means that it is thread safe
答案 3 :(得分:0)
可能有太多线程同时使用这个ComposeParts函数,我只是锁定了这个函数,线程可以同步操作这个函数,一切顺利。
theme.mixins.toolbar.minHeight
}