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();
                }
     
            }
        }
    }

  • 相关阅读:
    [Unity3D]蓝港面试题
    BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
    JSONObject与JSONArray的使用
    一个int类型究竟占多少个字节
    软件开发的金字塔
    poj 1064 Cable master ,二分 精度!!!
    php实现工厂模式
    数据库索引的作用和长处缺点
    C++中使用class和structkeyword的不同
    提交时提示错误This Bundle is invalid.New apps and app updates submitted to the App Store must be built wit
  • 原文地址:https://www.cnblogs.com/zbw911/p/2859398.html
Copyright © 2011-2022 走看看