Ran*_*ngy 4 c# mef visual-studio visual-studio-extensions
在 Visual Studio 扩展中,我尝试导出 MEF 组件并稍后找到它。
我有这门课:
[Export(typeof(IBoilerplateSettings))]
public class BoilerplateSettings : IBoilerplateSettings
{
...
Run Code Online (Sandbox Code Playgroud)
此代码在 OleMenuCommand 的回调中解析。从这个拉取请求中得到了例子。
var componentModel = (IComponentModel)this.package.GetService(typeof(SComponentModel));
var settings = componentModel.DefaultExportProvider.GetExportedValue<IBoilerplateSettings>();
Run Code Online (Sandbox Code Playgroud)
但每次都会抛出这个错误:
No exports were found that match the constraint:
ContractName UnitTestBoilerplate.IBoilerplateSettings
RequiredTypeIdentity UnitTestBoilerplate.IBoilerplateSettings
Run Code Online (Sandbox Code Playgroud)
两者都在同一个程序集中。我已经尝试过[Export]这两个属性System.Composition,但System.ComponentModel.Composition都不起作用。
我正在查看VS 中 MEF 的文档,但听起来添加该属性应该可行。我也尝试过清除 ComponentModel 缓存,但这不起作用。我在这里缺少什么?
一般要检查两件事:
如果这不起作用,通常有一种激进的方法,即在 Visual Studio 运行时中断所有异常,并查看是否可以找到与扩展相关的任何内容。您可能会发现其他一些加载异常,或其他一些根本原因。不幸的是,这是一种非常分散的方法。
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |