/// <summary> /// 解析插件集合中所有的对象 /// 将其分别装入ICommand,ITool,IToolBarDef,IMenuDefI和DockableWindowDef 5个集合 /// </summary> /// <param name="pluginCol">插件集合</param> public void GetPluginArray(PluginCollection pluginCol) { //遍历插件集合 foreach (NBGIS.PluginEngine.IPlugin plugin in pluginCol) { //获得Command接口并添加到Command集合中 NBGIS.PluginEngine.ICommand cmd = plugin as NBGIS.PluginEngine.ICommand; if (cmd != null) { this._Commands.Add(cmd.ToString(), cmd); //找出该Command的Category,如果它还没有添加到Category则添加 if (cmd.Category != null && _CommandCategory.Contains(cmd.Category) == false) { _CommandCategory.Add(cmd.Category); } continue; } //获得ITool接口并添加到ITool集合中 NBGIS.PluginEngine.ITool tool = plugin as NBGIS.PluginEngine.ITool; if (tool != null) { this._Tools.Add(tool.ToString(), tool); if (tool.Category != null && _CommandCategory.Contains(tool.Category) == false) { _CommandCategory.Add(tool.Category); } continue; } //获得IToolBarDef接口并添加到IToolBarDef集合中 NBGIS.PluginEngine.IToolBarDef toolbardef = plugin as NBGIS.PluginEngine.IToolBarDef; if (toolbardef != null) { this._ToolBars.Add(toolbardef.ToString(), toolbardef); continue; } //获得IMenuDef接口并添加到IMenuDef集合中 NBGIS.PluginEngine.IMenuDef menudef = plugin as NBGIS.PluginEngine.IMenuDef; if (menudef != null) { this._Menus.Add(menudef.ToString(), menudef); continue; } //获得IDockableWindowDef接口并添加到IDockableWindowDef集合中 NBGIS.PluginEngine.IDockableWindowDef dockablewindowdef = plugin as NBGIS.PluginEngine.IDockableWindowDef; if (dockablewindowdef != null) { this._DockableWindows.Add(dockablewindowdef.ToString(), dockablewindowdef); continue; } } }
//解析插件集合中所有对象 //将其分别装入ICommand、ITool、IToolBarDef、IMenuDef和IDockableWindows5个集合 public static void GetPluginArray(PluginCollection pluginCol) { foreach (NBGIS.PluginEngine.IPlugin plugin in pluginCol) { ///////////////// NBGIS.PluginEngine.ICommand cmd = plugin as NBGIS.PluginEngine.ICommand; if (cmd != null) { m_Commands.Add(cmd.ToString(), cmd); //找出该Command的Category,如果它没有添加到Category中则添加 if (cmd.Category != null && (!m_CommandCategory.Contains(cmd.Category))) { m_CommandCategory.Add(cmd.Category); } continue; } //////////////// NBGIS.PluginEngine.ITool tool = plugin as NBGIS.PluginEngine.ITool; if (tool != null) { m_Tools.Add(tool.ToString(), tool); if (tool.Category != null && (!m_CommandCategory.Contains(tool.Category))) { m_CommandCategory.Add(tool.Category); } continue; } //////////////// NBGIS.PluginEngine.IToolBarDef toolbar = plugin as NBGIS.PluginEngine.IToolBarDef; if (toolbar != null) { m_ToolBars.Add(toolbar.ToString(), toolbar); continue; } //////////////// NBGIS.PluginEngine.IMenuDef menu = plugin as NBGIS.PluginEngine.IMenuDef; if (menu != null) { m_Menus.Add(menu.ToString(), menu); continue; } //////////////// NBGIS.PluginEngine.IDockableWindowDef dockableWindow = plugin as NBGIS.PluginEngine.IDockableWindowDef; if (dockableWindow != null) { m_DockableWindows.Add(dockableWindow.ToString(), dockableWindow); continue; } } }