【问题标题】:MEF vs Unity import into view modelMEF vs Unity 导入视图模型
【发布时间】:2011-10-02 13:37:22
【问题描述】:

当使用统一时,您可以在视图模式的构造函数中导入容器。

但是如何将 MEF 容器导入视图模型以解析实例?

谢谢

【问题讨论】:

    标签: unity-container mef


    【解决方案1】:

    一般来说,绕过容器并不是一个好主意,因为您最终会将其用作服务位置机制,但如果您希望这样做,您会需要手动导出容器,例如:

    var container = new CompositionContainer(catalog);
    container.ComposeExportedValue(container);
    

    这将使您能够导入它:

    [Import]
    public CompositionContainer Container { get; set; }
    

    或者:

    [ImportingConstructor]
    public MyClass(CompositionContainer container) { }
    

    【讨论】:

    • 我同意服务位置反模式。我已经做了很多环顾四周,但没有找到一个很好的答案来解决我的问题 - 如果我有很多东西需要导入到视图模型中,并且我不愿意使用 [Import] (更喜欢构造函数注入),怎么能我在没有巨大构造函数的情况下解决这个问题(这个问题被继承放大了,子类也必须提供巨大的构造函数)。有什么好主意吗?
    猜你喜欢
    • 2011-07-25
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多