public static void ConfigureAddins() { _searchEngines = new List <SearchEngineConfiguration>(); var dsConfig = new System.Data.DataSet(); var path = AppDomain.CurrentDomain.BaseDirectory + "\\SearchEngines.config"; if (!File.Exists(path)) { path = AppDomain.CurrentDomain.BaseDirectory + "\\bin\\SearchEngines.config"; } dsConfig.ReadXml(path); foreach (DataRow row in dsConfig.Tables["searchEngine"].Rows) { try { var engineConfiguration = new SearchEngineConfiguration { DisplayName = row["displayName"].ToString(), Name = row["name"].ToString() }; var engineType = Type.GetType(row["type"].ToString()); if (engineType == null || !typeof(ISearchEngine).IsAssignableFrom(engineType)) { continue; } engineConfiguration.Type = engineType; var constructorInfo = engineType.GetConstructor(System.Type.EmptyTypes); if (constructorInfo != null) { engineConfiguration.Instance = constructorInfo.Invoke(null) as ISearchEngine; _searchEngines.Add(engineConfiguration); } } catch (Exception ex) { Logger.Log.Error(ex.Message, ex); } } }
public static void ConfigureAddins() { _searchEngines = new List<SearchEngineConfiguration>(); var dsConfig = new System.Data.DataSet(); var path = AppDomain.CurrentDomain.BaseDirectory + "\\SearchEngines.config"; if(!File.Exists(path)) path = AppDomain.CurrentDomain.BaseDirectory + "\\bin\\SearchEngines.config"; dsConfig.ReadXml(path); foreach (DataRow row in dsConfig.Tables["searchEngine"].Rows) { try { var engineConfiguration = new SearchEngineConfiguration { DisplayName = row["displayName"].ToString(), Name = row["name"].ToString() }; var engineType = Type.GetType(row["type"].ToString()); if (engineType == null || !typeof(ISearchEngine).IsAssignableFrom(engineType)) { continue; } engineConfiguration.Type = engineType; var constructorInfo = engineType.GetConstructor(System.Type.EmptyTypes); if (constructorInfo != null) { engineConfiguration.Instance = constructorInfo.Invoke(null) as ISearchEngine; _searchEngines.Add(engineConfiguration); } } catch (Exception ex) { Logger.Log.Error(ex.Message, ex); } } }