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。,这样就足够了吗?太好了。我该怎么做?