using System; using System.Collections.Generic; using System.ComponentModel.Composition; using System.ComponentModel.Composition.Hosting; using System.IO; using System.Windows.Forms; using static mpvnet.StaticUsing; namespace mpvnet { public class Addon { [ImportMany] public IEnumerable Addons = null; private readonly CompositionContainer CompositionContainer; public Addon() { try { AggregateCatalog catalog = new AggregateCatalog(); string dir = Application.StartupPath + "\\Addons"; if (Directory.Exists(dir)) foreach (string i in Directory.GetDirectories(dir)) catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll")); dir = mpv.mpvConfFolderPath + "\\Addons"; if (Directory.Exists(dir)) foreach (string i in Directory.GetDirectories(dir)) catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll")); if (catalog.Catalogs.Count > 0) { CompositionContainer = new CompositionContainer(catalog); CompositionContainer.ComposeParts(this); } } catch (Exception e) { MsgError(e.ToString()); } } } public interface IAddon { } }