2012-03-11 120 views
1

我有一个应用程序,我使用MEF进行DI的组合和统一。 在某些时候,我有一个使用MEF为服务加载许多提供者的组件。 有些应该使用Unity实例化提供者,因为实例化时它们需要接收add'l组件。MEF和Unity集成

需要由Unity创建的提供者具有向容器注册的依赖类型/接口。

但是,当通过MEF构成根组件(并且列表中填充了由MEF注册的所有导出组件)时,需要使用Unity构建的组件不会注入其依赖关系。

我的代码是

public class LoggerManager 
{ 
    [ImportMany(typeof(ILogger))] 
    private List<ILogger> _loggers { get; set; } 
} 

和记录器是

[Export(typeof(ILogger))] 
public class WinEventLog : EventLog, ILogger 
{ 

    private IWinLoggerConfigurator _config = null; 

    public WinEventLog(IWinLoggerConfigurator config) 
    { 
     _config=config; 
    } 
} 

在我主要的代码我有,尝试撰写日志管理

UnityHelper.Container.RegisterType<IWinLoggerConfigurator , MyWinLoggerConfigurator>(); 

如何可以完成此之前?

谢谢

回答