private static void ConfigureContainer(out CompositionContainer container, out CompositionScopingService service) { var componentsFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"); var reg = new RegistrationBuilder(); reg .ForTypesDerivedFrom <IController>() .AddMetadata(ExportScope.Key, TransactionScope.Id) .Export <IController>() .Export(); var rootCatalog = new DirectoryCatalog(componentsFolder, reg); try { var mms = rootCatalog.DiscoverModules(); service = new CompositionScopingService(mms.Catalog, mms.ExplicitExports, new String[] { TransactionScope.Id }); container = new CompositionContainer(mms.Catalog); } catch (ReflectionTypeLoadException rtle) { var sb = new StringBuilder(); sb.Append(rtle.UnwindException() + "<br/><br/>"); foreach (var e in rtle.LoaderExceptions) { sb.Append(e.UnwindException() + "<br/><br/>"); } throw new ReflectionTypeLoadException(rtle.Types, rtle.LoaderExceptions, sb.ToString()); } }