【问题标题】:Importing MEF Components from VSPackage Class从 VSPackage 类导入 MEF 组件
【发布时间】:2017-08-03 17:49:35
【问题描述】:

我需要能够从我的包类中与我的 MEF 组件进行通信。我尝试了几种不同的方法:

使用了包类中的 [import] 属性。但是属性始终为空。我发现这是因为您无法从包类中导入 MEF 组件。

尝试调用“componentModel.DefaultExportProvider.GetExportedValue”来获取由 MEF 创建的类的实例。这确实返回了一个实例,但它似乎是一个副本,或者没有链接到实际 MEF 组件的东西

我尝试访问的 MEF 组件是我创建的自定义团队资源管理器页面部分。我的包有一个事件,当被触发时,需要通过方法调用调用这个 MEF 组件,并提供一些关于我的应用程序状态的信息。

看起来这应该很简单,但我已经被困了好几天了。

我只需要与包中的 MEF 组件进行通信。我可以这样做吗?这是可能吗?

【问题讨论】:

    标签: visual-studio mef vspackage


    【解决方案1】:

    我找到了答案。对于任何有兴趣的人,请参阅 SLaks 发布的示例解决方案:Rebracer

    基本思想是 Package 类不能直接创建任何东西,甚至 OLEMenuCommands 也不行。所有这些都需要由 Visual Studio 使用 MEF 隐式实例化。

    How to register my service as a global service or how can I use MEF in my scenario?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2013-08-24
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多