在Visual扩展中,我试图导出MEF组件并在以后找到它。
我有一节课:
[Export(typeof(IBoilerplateSettings))]
public class BoilerplateSettings : IBoilerplateSettings
{
...这段代码可以在OleMenuCommand的回调中解析。从此拉请求得到了一个例子。
var componentModel = (IComponentModel)this.package.GetService(typeof(SComponentModel));
var settings = componentModel.DefaultExportProvider.GetExportedValue<IBoilerplateSettings>();但是每次它都会抛出这个错误:
No exports were found that match the constraint:
ContractName UnitTestBoilerplate.IBoilerplateSettings
RequiredTypeIdentity UnitTestBoilerplate.IBoilerplateSettings两者都在同一个程序集中。我在System.Composition和System.ComponentModel.Composition中都尝试过System.Composition属性,但两者都不起作用。
我正在查看用于VS的MEF的文档,但似乎添加该属性就可以了。我也尝试过清除ComponentModel缓存,但这是行不通的。我在这里错过了什么?
发布于 2017-01-30 00:35:40
通常有两件事需要检查:
如果这样做不起作用,通常会有一种激进的方法,即在Visual运行时只对所有异常进行中断,并查看是否可以找到与扩展相关的任何内容。您可能会发现一些其他加载异常,或其他一些根本原因。不幸的是,这是一种非常分散的方法。
https://stackoverflow.com/questions/41923503
复制相似问题