public static void FillPlugins(IAppIface app) { String dir = String.Concat( Settings.Server.appDirectory, "\\", Settings.Server.pluginsSubdirectory); if (Directory.Exists(dir)) { String[] filenames = Directory.GetFiles(dir, "*.dll"); foreach (String fname in filenames) { AddPlugin(fname); } // init each foreach (clPlugins clpx in plugins) { if (clpx.isValid) { clpx.plugin.Init(app); // Console.WriteLine(String.Concat("INIT ", clpx.plugin.Name, " ", app.ToString())); } } // passing list of the plugins to each IPluginIface[] pluginIfaces = new IPluginIface[plugins.Count]; for (int i = 0; i < plugins.Count; i++) { if (plugins[i].isValid) { pluginIfaces[i] = (IPluginIface)plugins[i].plugin; } } foreach (clPlugins clpx in plugins) { if (clpx.isValid) { clpx.plugin.AllThePlugins(pluginIfaces); } } } }
public void Init(IAppIface appIface) { mainProgram = appIface; }