Exemple #1
0
        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);
            }
        }
Exemple #2
0
        static Module()
        {
            Configuration = ConfigurationManager.GetSection("glimpse") as GlimpseConfiguration ?? new GlimpseConfiguration();
            Responders    = new GlimpseResponders();
            Plugins       = Enumerable.Empty <Lazy <IGlimpsePlugin, IGlimpsePluginRequirements> >();

            DirectoryCatalog = new BlacklistedSafeDirectoryCatalog("bin", Configuration.PluginBlacklist.TypeNames());

            Container = new CompositionContainer(DirectoryCatalog);
        }