如何在未找到导出时阻止MEF抛出异常?

时间:2010-05-13 16:37:19

标签: .net mef

我有一个IList<T>属性的类,其中包含[ImportMany(allowRecomposition = true)]属性。在某些情况下,应用程序可能找不到所请求类型的任何可用导出。现在,如果没有找到所请求类型的导出,它会抛出一个CompositionException。我不喜欢由抛出异常确定的应用程序流,所以我宁愿不抓住并在这种情况下做出反应。相反,我只想继续执行程序。

我可以设置一个标志或其他东西来使这个导入可选吗?我知道对于单个导入属性,您可以执行此操作:[Import(AllowDefault = true)]但“AllowDefault”不是ImportMany属性的选项。

1 个答案:

答案 0 :(得分:3)

大多数情况都会失败,因为根据定义,ImportMany将允许零个或多个项目,因此如果没有值,则不会导致任何错误。

相关问题