【问题标题】:Stop application on System.ComponentModel.Composition Warning from MEF停止来自 MEF 的 System.ComponentModel.Composition 警告上的应用程序
【发布时间】:2014-12-17 16:25:08
【问题描述】:

启动应用程序时,该应用程序由 PRISM 的 MefBootstrapper 引导,有时我会收到 System.ComponentModel.Composition 警告。这是在合成过程中加载某些部分时出现问题。 然而,应用程序仍会启动,但处于不可预测的状态,因为并非所有功能都可用。 有没有办法让 MEF 在出现此问题时抛出异常,以便我可以将其作为错误处理?

【问题讨论】:

    标签: prism mef ioc-container composition


    【解决方案1】:

    在创建CompositionContainer 时,只需将CompositionOptions.DisableSilentRejection 值作为第二个参数传递:

    var container = new CompositionContainer(catalog, CompositionOptions.DisableSilentRejection);
    

    这样做,(默认)静默拒绝将被禁用,因此所有拒绝都会导致错误。

    更多详情,像往常一样,in MSDN

    【讨论】:

    • 我在寻找解决方案时实际上尝试过这个,但 MEF 似乎并不尊重这个选项。它仍然只是在输出窗口中给出警告。我是否使用了错误版本的 MEF?
    • @RichardHoultz,您使用的是什么版本?这似乎适用于 System.ComponentModel.Composition.dll v4.0.30319 (.NET 4.5)。
    猜你喜欢
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2011-05-18
    • 2012-02-01
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多