MEF - 导入的对象在构造函数中为null

时间:2012-01-02 15:59:45

标签: c# c#-4.0 unity-container mef

我正在使用MEF将UnityContainer注入我的应用程序的插件中。

每个插件保持面板。

我想通过MEF将Unity容器转移到面板中。

我需要在面板的构造函数中使用Unity。

问题是Unity没有初始化。

因此,在创建面板后,我在插件中使用了CompositionContainer.ComposeParts(面板)。该 问题是我想在面板的构造函数中使用Unity。

我不想将UnityContainer或CompositionContainer作为参数发送到面板的构造函数中。

感谢

1 个答案:

答案 0 :(得分:4)

你没有发布一些代码所以我假设:

如果你这样做:

public class Bar
{
   [ImportingConstructor]
   public Bar(IMyImportedService service)
   {
      //service should not be null
   }
}

如果你这样做

public class Bar
{
   [Import]
   private IMyImportedService service;

   public Bar()
   {
      //service should be null, because you have to implement IPartImportsSatisfiedNotificationand use OnImportsSatisfied
   }
}