从 VSPackage 导入 MEF 组件 Class
Importing MEF Components from VSPackage Class
我需要能够与我的包 class 中的 MEF 组件进行通信。我尝试了几种不同的方法:
使用了包 class 中的 [导入] 属性。但是,属性始终为空。我发现这是因为您无法从包 class.
导入 MEF 组件
尝试调用 "componentModel.DefaultExportProvider.GetExportedValue" 以获取由 MEF 创建的 class 实例。这实际上是 return 一个实例,但它似乎是一个副本,或者未链接到实际 MEF 组件的东西
我尝试访问的 MEF 组件是我创建的自定义团队资源管理器页面部分。我的包有一个事件,当触发时,需要通过方法调用调用此 MEF 组件,并提供有关我的应用程序状态的一些信息。
看起来这应该很简单,但我已经卡了好几天了。
我只需要与包中的 MEF 组件进行通信。我可以这样做吗?这是可能吗?
我找到了答案。对于任何感兴趣的人,请参阅 SLaks 发布的示例 solution:Rebracer
基本思想是包 class 不能直接创建任何东西,甚至不能创建 OLEMenuCommands。所有这些都需要使用 MEF 由 visual studio 隐式实例化。
我需要能够与我的包 class 中的 MEF 组件进行通信。我尝试了几种不同的方法:
使用了包 class 中的 [导入] 属性。但是,属性始终为空。我发现这是因为您无法从包 class.
导入 MEF 组件尝试调用 "componentModel.DefaultExportProvider.GetExportedValue" 以获取由 MEF 创建的 class 实例。这实际上是 return 一个实例,但它似乎是一个副本,或者未链接到实际 MEF 组件的东西
我尝试访问的 MEF 组件是我创建的自定义团队资源管理器页面部分。我的包有一个事件,当触发时,需要通过方法调用调用此 MEF 组件,并提供有关我的应用程序状态的一些信息。
看起来这应该很简单,但我已经卡了好几天了。
我只需要与包中的 MEF 组件进行通信。我可以这样做吗?这是可能吗?
我找到了答案。对于任何感兴趣的人,请参阅 SLaks 发布的示例 solution:Rebracer
基本思想是包 class 不能直接创建任何东西,甚至不能创建 OLEMenuCommands。所有这些都需要使用 MEF 由 visual studio 隐式实例化。