从VSPackage类中导入MEF组件

3
我需要能够从我的包类与我的MEF组件进行通信。我尝试了几种不同的方法:
1.使用[import]属性来自包类。但是,属性总是为空。我发现这是因为您无法从包类中导入MEF组件。
2.尝试调用“componentModel.DefaultExportProvider.GetExportedValue”获取由MEF创建的类的实例。实际上,这确实返回了一个实例,但它似乎是副本或与实际MEF组件没有链接的东西。
我正在尝试访问的MEF组件是我创建的自定义团队资源管理器页面部分。当触发我的包事件时,将需要通过方法调用并提供有关我的应用程序状态的信息来调用此MEF组件。
这似乎很简单,但我已经卡住了好几天。
我只是需要与包中的MEF组件进行通信。我可以做到吗?这可能吗?
1个回答

3
我找到了答案。对于任何有兴趣的人,请参考SLaks发布的示例解决方案:Rebracer。
基本思想是Package类不能直接创建任何东西,甚至是OLEMenuCommands。所有这些都需要通过使用MEF隐式地由Visual Studio实例化。
如需注册我的服务作为全局服务或在我的场景中如何使用MEF,请参阅此链接:How to register my service as a global service or how can I use MEF in my scenario?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接