38 {
39 Directory.CreateDirectory("Plugins");
40 foreach (string s in Directory.GetFiles("Plugins"))
41 {
42 if (!s.EndsWith(
".dll") ||
Plugin.
Plugins.ContainsKey(Path.GetFileName(s)))
43 continue;
44
45 Assembly pluginAssembly = Assembly.LoadFile(Environment.CurrentDirectory + "/" + s);
46
47 var pluginType = pluginAssembly.GetTypes().FirstOrDefault(t => typeof(IPlugin).IsAssignableFrom(t) && !t.IsInterface);
48 if (pluginType != null)
49 {
50
51 IPlugin pluginInstance = Activator.CreateInstance(pluginType) as IPlugin;
53 if (pluginInstance.ContextMenu)
54 App.AddContextMenu(pluginInstance.MenuPath);
55 else
56 App.AddMenu(pluginInstance.MenuPath);
57 }
58 else
59 {
60 Console.WriteLine("No plugin found in the assembly: " + s);
61 }
62 }
63 }
static Dictionary< string, IPlugin > Plugins