zoukankan      html  css  js  c++  java
  • [kooboo] 应用程序启动分析

    从 Niject Loader 看到过 , [assembly: System.Web.PreApplicationStartMethod ….]

    这次再看一下 kooboo , 也同样通过这样的方式,启动代码方式,有意思,

    先是注册启动方法

    [assembly: System.Web.PreApplicationStartMethod(typeof(Kooboo.CMS.Sites.Providers.SqlServer.AssemblyInitializer), "Initialize")]
    namespace Kooboo.CMS.Sites.Providers.SqlServer
    {
        public static class AssemblyInitializer
        {
            public static void Initialize()
            {
                ApplicationInitialization.RegisterInitializerMethod(delegate()
                {
                    ResetProviders();
                }, 1);
            }
    //.......
    }
    }

    然后在 Global.asax ,

       protected void Application_Start()
            {
                //execute the initializer method.
                ApplicationInitialization.Execute();      
     // .....
     }

    namespace Kooboo
    {
        public static class ApplicationInitialization
        {
            private class InitializationItem
            {
                public Action InitializeMethod { get; set; }
                public int Priority { get; set; }
            }
            private static List<InitializationItem> items = new List<InitializationItem>();
            public static void RegisterInitializerMethod(Action method, int priority)
            {
                items.Add(new InitializationItem() { InitializeMethod = method, Priority = priority });
            }
            public static void Execute()
            {
                lock (items)
                {
                    foreach (var item in items.OrderBy(it => it.Priority))
                    {
                        item.InitializeMethod();
                    }
                    items.Clear();
                }
     
            }
        }
    }

  • 相关阅读:
    XGBoost,GBDT原理详解,与lightgbm比较
    开机或联网时自启动gunicorn
    mac下查看jdk安装版本及安装目录
    Linux常用操作
    ssh远程登录出现Host key verification failed.解决办法
    gunicorn运行显示connection in use解决办法
    nginx,gunicorn常用命令
    Git入门--创建版本库,关联远程库,从远程库下载
    【新手向】阿里云上ubuntu+flask+gunicorn+nginx服务器部署(二)项目部署
    系统护肤+身体
  • 原文地址:https://www.cnblogs.com/zbw911/p/2859398.html
Copyright © 2011-2022 走看看