C# 组成部件,即使一次导出失败

C# 组成部件,即使一次导出失败,c#,mef,C#,Mef,我有一个问题,我想从模块字典导入类型。但由于基于插件的模块化,一些导入可能会失败 但是,如果只有一个导入失败,那么就不会导入任何东西——这当然是不需要的 try { // Use the binary directory var catalog = new DirectoryCatalog(AssemblyDirectory); var container = new CompositionContainer(catalog); // Build the com

我有一个问题,我想从模块字典导入类型。但由于基于插件的模块化,一些导入可能会失败

但是,如果只有一个导入失败,那么就不会导入任何东西——这当然是不需要的

try
{
    // Use the binary directory
    var catalog = new DirectoryCatalog(AssemblyDirectory);
    var container = new CompositionContainer(catalog);

    // Build the composition batch
    var compositionBatch = new CompositionBatch();
    compositionBatch.AddPart(this);                     // for discovering modules

    // Compose everything   
    container.Compose(compositionBatch);
}
catch (ReflectionTypeLoadException loadException)
{
    // Nothing will be done here
}
正确且想要的行为是,所有匹配的类型都应导入,但失败的类型将被忽略

我怎样才能做到这一点?
“提前感谢”

提供了一个如何忽略失败程序集的示例。您可以从正在使用的目录中获取程序集列表,然后为每个程序集创建一个AssemblyCatalog,按说明强制执行错误,然后将未失败的程序集放入AggregateCatalog。

,这样就足够了吗?太好了。我该怎么做?