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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }