internal static void AddAssembly(Assembly assembly) { if (assembly == null) { return; } foreach (var t in assembly.GetTypes()) { try { if (t.GetInterface(typeof(ILLPlugin).Name) != null) { ILLPlugin plugin = Activator.CreateInstance(t) as ILLPlugin; if (plugin != null) { LoadedPlugins.Add(plugin); if (Inited) { LoadPlugin(plugin); } if (Started) { StartPlugin(plugin); } } } } catch (Exception) { // it can't load, skip it } } }
private static void StopPlugin(ILLPlugin plugin) { plugin.Shutdown(); }
private static void UnloadPlugin(ILLPlugin plugin) { plugin.Unload(); }
private static void StartPlugin(ILLPlugin plugin) { plugin.Startup(); }
private static void LoadPlugin(ILLPlugin plugin) { plugin.Load(); }