コード例 #1
0
 public FileExplorer(NameObjectCollection fileFunctionMap)
 {
     m_fileFunctionMap = fileFunctionMap;
     _quit             = false;
     m_DNV             = Settings.Instance.DNV;
     m_indexer         = new Indexer(Properties.Settings.Instance.TempIndexPath, IndexMode.CREATE);
 }
コード例 #2
0
        /// <summary>
        /// Responsible for loading plugins and extracting RegisteredFileExtension and RegisteredHTMLTags
        /// </summary>
        private void LoadPlugins()
        {
            m_objCollection = new NameObjectCollection();
            m_htTagMap      = new Hashtable(10);
            string strLocation = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Plugins");

            string[] strFileList = Directory.GetFiles(strLocation, "*.dll");

            foreach (string file in strFileList)
            {
                Assembly assembly;
                try
                {
                    Logger.Instance.LogDebug("Loaded plugin: " + file);
                    assembly = Assembly.LoadFrom(file);
                }
                catch
                {
                    Logger.Instance.LogError("Unable to load plugin: " + file);
                    continue;
                }

                // TODO: Re-look this loop. Make it more efficient
                foreach (Type t in assembly.GetTypes())
                {
                    foreach (Type iface in t.GetInterfaces())
                    {
                        if (iface.Equals(typeof(IPlugin)))
                        {
                            IPlugin iPlugin;
                            try
                            {
                                iPlugin = (IPlugin)Activator.CreateInstance(t);
                            }
                            catch
                            {
                                Logger.Instance.LogError("Unable to load instance of plugin: " + file);
                                continue;
                            }
                            foreach (string fileExtension in iPlugin.RegisteredFileExtentions)
                            {
                                m_objCollection.Add(fileExtension, iPlugin);
                            }
                            foreach (string tag in iPlugin.RegisteredHTMLTags)
                            {
                                if (!m_htTagMap.ContainsKey(tag))
                                {
                                    m_htTagMap.Add(tag, iPlugin);
                                }
                                else
                                {
                                    Logger.Instance.LogError(iPlugin.PluginName + " trying to register " +
                                                             tag + "again. Previous Owner: " + (string)m_htTagMap[tag]);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Responsible for loading plugins and extracting RegisteredFileExtension and RegisteredHTMLTags
        /// </summary>
        private void LoadPlugins()
        {
            m_objCollection = new NameObjectCollection();
            m_htTagMap = new Hashtable(10);
            string strLocation = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Plugins");
            string[] strFileList = Directory.GetFiles(strLocation, "*.dll");

            foreach (string file in strFileList)
            {
                Assembly assembly;
                try
                {
                    Logger.Instance.LogDebug("Loaded plugin: " + file);
                    assembly = Assembly.LoadFrom(file);
                }
                catch
                {
                    Logger.Instance.LogError("Unable to load plugin: " + file);
                    continue;
                }

                // TODO: Re-look this loop. Make it more efficient
                foreach (Type t in assembly.GetTypes())
                {
                    foreach (Type iface in t.GetInterfaces())
                    {
                        if (iface.Equals(typeof(IPlugin)))
                        {
                            IPlugin iPlugin;
                            try
                            {
                                iPlugin = (IPlugin)Activator.CreateInstance(t);
                            }
                            catch
                            {
                                Logger.Instance.LogError("Unable to load instance of plugin: " + file);
                                continue;
                            }
                            foreach(string fileExtension in iPlugin.RegisteredFileExtentions)
                            {
                                m_objCollection.Add(fileExtension, iPlugin);
                            }
                            foreach(string tag in iPlugin.RegisteredHTMLTags)
                            {
                                if(!m_htTagMap.ContainsKey(tag))
                                {
                                    m_htTagMap.Add(tag, iPlugin);
                                }
                                else
                                {
                                    Logger.Instance.LogError(iPlugin.PluginName + " trying to register " +
                                        tag + "again. Previous Owner: " + (string) m_htTagMap[tag]);
                                }
                            }
                        }
                    }
                }
            }
        }