代码之家  ›  专栏  ›  技术社区  ›  Kilhoffer Guffa

如果找不到导出,如何防止MEF引发异常?

  •  1
  • Kilhoffer Guffa  · 技术社区  · 14 年前

    我和一个 IList<T> [ImportMany(allowRecomposition = true)] 属性。在某些情况下,应用程序可能找不到所请求类型的任何可用导出。现在,如果没有找到所请求类型的导出,它将抛出compositionException。我不喜欢由抛出的异常决定的应用程序流,所以在这种情况下,我宁愿不捕获并作出反应。相反,我只希望程序继续执行。

    是否有一个标志或某些我可以设置为使此导入成为可选的内容?我知道对于单个导入属性,可以执行以下操作: [Import(AllowDefault = true)] 但是 AllowDefault '不是 ImportMany 属性。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Wes Haggard    14 年前

    大多数情况下还有其他失败,因为根据定义,importmany将允许零个或多个项,因此如果没有值,它将不会导致任何错误。