Example #1
0
        /// <summary>
        /// 初始化
        /// </summary>
        public override void Initialize()
        {
            #region 初始化路由
            // this.RoutingManager = new RoutingManager();
            // this.RoutingManager.Initialize();
            #endregion
            //初始化全局配置
            GlobalConfigurationManager.Config();
            using (var watch = new CodeWatch("Initialize", 20000))
            {
                #region 【废弃】处理插件
                using (new CodeWatch("LoadPlusAndPlusResource", 5000))
                {
                    //var taskDoingList = new List<Task>();
                    #region 【废弃】加载程序集资源
                    //foreach (var plus in PluginManager.InstalledPluginsList)
                    //{
                    //    var loadPlusTask = new Task((plusAss) => CurrentResourceHelper.LoadPlusAndPlusResource((IPlusInfo)plusAss), plus);
                    //    taskDoingList.Add(loadPlusTask);
                    //    loadPlusTask.Start();
                    //}
                    //Task.WaitAll(taskDoingList.ToArray());
                    //taskDoingList.Clear();
                    #endregion

                    #region 【废弃】初始化程序集
                    //foreach (var plus in PlusAssemblysList)
                    //{
                    //    //程序集初始化
                    //    var initTask = new Task((plusInfo) =>
                    //    {
                    //        var plu = (IPlusInfo)plusInfo;
                    //        CurrentResourceHelper.AssemblyInitialize(plu.Assembly, plu.PlusAssemblys);
                    //    }, plus);
                    //    taskDoingList.Add(initTask);
                    //    initTask.Start();
                    //}
                    //Task.WaitAll(taskDoingList.ToArray());
                    //taskDoingList.Clear();
                    #endregion

                    #region 【废弃】执行程序集初始化函数
                    //foreach (var plus in PluginManager.PluginsList)
                    //{
                    //    var loadingTask = new Task((plusInfo) =>
                    //    {
                    //        var plu = (IPlusInfo)plusInfo;
                    //        //执行插件Loading函数
                    //        plu.Assembly.GetTypes().Where(p => p.IsClass && p.GetInterface(typeof(IPlus).FullName) != null).Each(
                    //            t =>
                    //            {
                    //                using (new CodeWatch("Plu Initialize", ApplicationLog, 3000))
                    //                {
                    //                    try
                    //                    {
                    //                        var type = (IPlus)Activator.CreateInstance(t);
                    //                        type.Initialize();
                    //                    }
                    //                    catch (Exception ex)
                    //                    {
                    //                        ApplicationLog.Log(LoggerLevels.Error, string.Format("Assembly:{0},Type:{1}{2}", plu.Assembly.FullName, t.FullName, Environment.NewLine), ex);
                    //                    }
                    //                }
                    //            });
                    //    }, plus);
                    //    taskDoingList.Add(loadingTask);
                    //    loadingTask.Start();
                    //}
                    //Task.WaitAll(taskDoingList.ToArray());
                    //taskDoingList.Clear();
                    #endregion
                }
                #endregion
            }
        }