【问题标题】:MEF and Unity integrationMEF 和 Unity 集成
【发布时间】:2012-03-11 12:09:54
【问题描述】:

我有一个应用程序,我在其中使用 MEF 进行合成和 DI 的统一。 在某些时候,我有一个组件使用 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;
    }
}

在我的主要代码中,在尝试编写 LogManager 之前

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

如何做到这一点?

谢谢

【问题讨论】:

    标签: unity-container mef


    【解决方案1】:

    您还应该查看这个 MEFContrib 项目 - http://mefcontrib.codeplex.com/wikipage?title=Unity%20Integration

    【讨论】:

      【解决方案2】:

      我找到了以下帖子,描述了这种情况以及解决方案。

      http://pwlodek.blogspot.com/2009/05/unity-mef-integration-layer.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        • 1970-01-01
        • 2019-05-30
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多