I am using a DirectoryCatalog in MEF to satisfy imports in my application. However, there are sometimes obfuscated assemblies in the directory that cause a ReflectionTypeLoadException when I try to compose the catalog.
I know I can get round it by using a separate directory or by using a search filter on the DirectoryCatalog but I want a more general way to solve the problem. Is there some way I can handle the exception and allow composition to continue? Or is there another more general solution?
DirectoryCatalogalready has code to catchReflectionTypeLoadExceptionand ignore those assemblies. Unfortunately, as I have reported, merely creating theAssemblyCatalogwill not yet trigger the exception so that code doesn’t work.The exception is actually triggered by the first call to
AssemblyCatalog.Parts.Instead of using the
DirectoryCatalogfrom MEF, you will have to do it yourself:AssemblyCatalogfor itAssemblyCatalog.Parts.ToArray()to force the exception, and catch itAggregateCatalog