private void Init(PluginsConfLoader pluginsConfLoader) { pluginsConfLoader.Loaded += (sender, args) => { if (Container != null) { Container.Dispose(); } PluginsConf pluginsConf = args.PluginsConf; AggregateCatalog catalog = new AggregateCatalog(); foreach (string plugins in pluginsConf.PluginsList) { string path = Path.Combine(pluginsConf.PluginsDir, plugins); Assembly assembly = Assembly.LoadFile(path); catalog.Catalogs.Add(new AssemblyCatalog(assembly)); } //Create the CompositionContainer with the parts in the catalog. Container = new CompositionContainer(catalog); //Fill the imports of this object Container.ComposeParts(GetComposedParts()); }; pluginsConfLoader.Load(); }
private void Init(PluginsConfLoader pluginsConfLoader) { pluginsConfLoader.Loaded += (sender, args) => { if (Container != null) { Container.Dispose(); } PluginsConf pluginsConf = args.PluginsConf; AggregateCatalog catalog = new AggregateCatalog(); foreach (string plugins in pluginsConf.PluginsList) { string path = Path.Combine(pluginsConf.PluginsDir, plugins); Assembly assembly = Assembly.LoadFile(path); catalog.Catalogs.Add(new AssemblyCatalog(assembly)); } //Create the CompositionContainer with the parts in the catalog. Container = new CompositionContainer(catalog); //Fill the imports of this object Container.ComposeParts(GetComposedParts()); }; pluginsConfLoader.Load(); }
public void LoadPlugins_With_Valid_Data() { PluginsConfLoader pluginsConfLoader = new PluginsConfLoader(_filePath); pluginsConfLoader.Loaded += (sender, args) => { Assert.AreEqual(args.PluginsConf.PluginsDir, "."); Assert.IsNotNull(args.PluginsConf.PluginsList); Assert.AreEqual(args.PluginsConf.PluginsList.Count, 2); Assert.AreEqual(args.PluginsConf.PluginsList[0], "a.dll"); Assert.AreEqual(args.PluginsConf.PluginsList[1], "b.dll"); }; pluginsConfLoader.Load(); }