1

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

但是,如果只有一次导入失败,则不会导入任何内容——这当然是不希望的。

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
}

正确和想要的行为是,应导入所有匹配类型,但忽略失败。

我怎样才能做到这一点?提前致谢

4

1 回答 1

2

这个答案有一个如何忽略失败程序集的示例。您从正在使用的目录中获取程序集列表,然后为每个程序集创建一个 AssemblyCatalog,按照此处所述强制错误,然后将未失败的目录放入 AggregateCatalog。

于 2013-05-07T13:02:23.153 回答