2012-03-11 44 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>(); 

如何可以完成此之前?

謝謝

回答