private void ComposePlugins() { var batch = new CompositionBatch(); var directoryCatalog = new BlacklistedSafeDirectoryCatalog("bin", Configuration.PluginBlacklist.TypeNames()); var container = new CompositionContainer(directoryCatalog); container.ComposeParts(this, RequestValidator); container.Compose(batch); Services = container.GetExportedValues <IGlimpseService>(); Plugins = container.GetExports <IGlimpsePlugin, IGlimpsePluginRequirements>(); Handlers = container.GetExportedValues <IGlimpseHandler>(); var glimpseConverters = container.GetExportedValues <IGlimpseConverter>(); Serializer.AddConverters(glimpseConverters); Logger.Info("MEF Parts composed: " + Plugins.Count() + " IGlimpsePlugins, " + Services.Count() + " IGlimpseServices, " + Handlers.Count() + " IGlimpseHandlers and " + glimpseConverters.Count() + " IGlimpseConverters configured"); foreach (var exception in directoryCatalog.Exceptions) { Logger.Warn("MEF Loading error", exception); } }