public string[] GetAllPluginNames() { config = (PluginConfigurationSection)ConfigurationManager.GetSection("PluginSection"); PluginConfigurationElement pe = new PluginConfigurationElement(); ArrayList ps = new ArrayList(); for (Int32 i = 0; i < config.PluginCollection.Count; i++) { pe = config.PluginCollection[i]; ps.Add(pe.Name); } return((String[])ps.ToArray(typeof(String))); }
public bool Contains(string pluginName) { config = (PluginConfigurationSection)ConfigurationManager.GetSection("PluginSection"); PluginConfigurationElement pe = new PluginConfigurationElement(); List <String> ps = new List <string>(); for (Int32 i = 0; i < config.PluginCollection.Count; i++) { pe = config.PluginCollection[i]; ps.Add(pe.Name); } return(ps.Contains(pluginName)); }
public void TriggerPlugins(Build oldBuild, Build newBuild) { if (oldBuild.Status.Equals(newBuild.Status)) { return; } PluginConfigurationSection plugins = ConfigurationManager.GetSection("pluginConfiguration") as PluginConfigurationSection; foreach (PluginExecutor pluginExecutor in plugins.Plugins.Select(pluginElement => new PluginExecutor(pluginElement.PluginType))) { pluginExecutor.StartExecutePlugins(newBuild); } }
private static void ValidatePlugin(Type pluginType) { PluginConfigurationSection plugins = ConfigurationManager.GetSection("pluginConfiguration") as PluginConfigurationSection; if (plugins == null) { throw new ArgumentException( string.Format(InternalResources.PluginCouldNotFindConfigurationSection, "pluginConfiguration") ); } PluginElement plugin = plugins.Plugins.FirstOrDefault(p => pluginType.FullName.Equals(p.TypeStr, StringComparison.OrdinalIgnoreCase)); if (plugin == null) { throw new ArgumentException( string.Format(InternalResources.PluginCouldNotFindPluginByName, pluginType.Name) ); } }
public bool LoadPlugin(string pluginName) { Boolean result = false; config = (PluginConfigurationSection)ConfigurationManager.GetSection("PluginSection"); PluginConfigurationElement pe = new PluginConfigurationElement(); String path = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + ""; try { for (Int32 i = 0; i < config.PluginCollection.Count; i++) { pe = config.PluginCollection[i]; if (pe.Name == pluginName) { Assembly assembly = Assembly.LoadFile(path + "\\" + pe.Assembly); Type type = assembly.GetType(pe.Type); IServerPlugin instance = (IServerPlugin)Activator.CreateInstance(type); instance.ServerApplication = application; instance.Load(); plugins[pluginName] = instance; result = true; break; } } if (!result) { application.WriteMessage(string.Format("未找到插件{0}!", pluginName)); } } catch (Exception e) { application.WriteMessage(string.Format("出现错误:{0}", e.Message)); result = false; } return(result); }
public void LoadAllPlugin() { PluginConfigurationElement pe = new PluginConfigurationElement(); config = (PluginConfigurationSection)ConfigurationManager.GetSection("PluginSection"); if (config == null) { application.WriteMessage("未配置插件文件!"); return; } String path = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + ""; try { for (Int32 i = 0; i < config.PluginCollection.Count; i++) { pe = config.PluginCollection[i]; if (File.Exists(path + "\\" + pe.Assembly)) { Assembly assembly = Assembly.LoadFile(path + "\\" + pe.Assembly); Type type = assembly.GetType(pe.Type); IServerPlugin instance = (IServerPlugin)Activator.CreateInstance(type); instance.ServerApplication = application; instance.Load(); plugins[pe.Name] = instance; } else { application.WriteMessage(string.Format("服务器端插件文件{0}不存在!", pe.Assembly)); } } } catch (Exception e) { application.WriteMessage(string.Format("出现错误:{0}", e.Message)); } }