public void Init(ServiceLocator sl, ref PluginSetting s)
        {
            if (!s.Enable)
            {
                return;
            }

            RepositoryPluginSetting setting = new Repository.RepositoryPluginSetting(s);

            s = setting;

            string type1 = setting["type1"];
            string type2 = setting["type2"];

            if (StringUtil.IsNullOrEmpty(type1) && StringUtil.IsNullOrEmpty(type2))
            {
                setting.Enable = false;

                LogManager.GetLogger <RepositoryInitializer>().Debug("RepositoryInitializer is disabled. type1 and type2 is null.");
            }
            else
            {
                if (StringUtil.HasText(type1))
                {
                    try
                    {
                        Type t1 = Type.GetType(type1, true, true);
                        sl.AddComponent("kiss.repository_1", typeof(IRepository <>), t1);
                    }
                    catch (Exception ex)
                    {
                        LogManager.GetLogger <RepositoryInitializer>().Error("RepositoryInitializer Error." + ExceptionUtil.WriteException(ex));
                    }
                }

                if (StringUtil.HasText(type2))
                {
                    try
                    {
                        Type t2 = Type.GetType(type2, true, true);
                        sl.AddComponent("kiss.repository_2", typeof(IRepository <,>), t2);
                    }
                    catch (Exception ex)
                    {
                        LogManager.GetLogger <RepositoryInitializer>().Error("RepositoryInitializer Error." + ExceptionUtil.WriteException(ex));
                    }
                }
            }

            foreach (var item in Plugin.Plugins.GetPlugins <DbProviderAttribute>())
            {
                sl.AddComponent(item.ProviderName, item.Decorates);
            }
        }
        protected void Application_Start(object sender, EventArgs e)
        {
            StopAppDomainRestart();

            // start component
            ServiceLocator sl = ServiceLocator.Instance;

            sl.Init(delegate
            {
                sl.AddComponent("Kiss.webcontext", typeof(IWebContext), typeof(WebRequestContext));
                sl.AddComponent("Kiss.typeFinder", typeof(ITypeFinder), typeof(WebAppTypeFinder));
            });

            LogManager.GetLogger <KissHttpApplication>().Debug("ALL components initialized.");

            EventBroker.Instance.BeginRequest += onBeginRequest;
        }
        public void Init(ServiceLocator sl, ref PluginSetting setting)
        {
            if (!setting.Enable)
            {
                sl.AddComponent("kiss.XmlUrlMappingProvider", typeof(IUrlMappingProvider), typeof(XmlUrlMappingProvider));
                sl.AddComponent("kiss.defaultHost", typeof(IHost), typeof(Kiss.Web.Host));

                return;
            }

            sl.AddComponent("kiss.Areahost", typeof(IHost), typeof(Host));
            sl.AddComponent("kiss.AreaUrlMappingProvider", typeof(IUrlMappingProvider), typeof(AreaUrlMappingProvider));

            Areas.Add(@"/", AreaConfig.Instance);

            ControllerResolver resolver = ControllerResolver.Instance;

            load_areas(resolver);

            HttpRuntime.Cache.Insert(kCACHE_KEY, "dummyValue", null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);

            logger.Debug("AreaInitializer done.");
        }
        public void Init(ServiceLocator sl, ref PluginSetting setting)
        {
            if (!setting.Enable)
            {
                sl.AddComponent("kiss.XmlUrlMappingProvider", typeof(IUrlMappingProvider), typeof(XmlUrlMappingProvider));
                sl.AddComponent("kiss.defaultHost", typeof(IHost), typeof(Kiss.Web.Host));

                return;
            }

            sl.AddComponent("kiss.Areahost", typeof(IHost), typeof(Host));
            sl.AddComponent("kiss.AreaUrlMappingProvider", typeof(IUrlMappingProvider), typeof(AreaUrlMappingProvider));

            Areas.Add(@"/", AreaConfig.Instance);

            ControllerResolver resolver = ControllerResolver.Instance;

            load_areas(resolver);

            HttpRuntime.Cache.Insert(kCACHE_KEY, "dummyValue", null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);

            logger.Debug("AreaInitializer done.");
        }
        public void Init(ServiceLocator sl, ref PluginSetting s)
        {
            if (!s.Enable)
            {
                return;
            }

            CachePluginSetting settings = new CachePluginSetting(s);

            s = settings;

            foreach (var item in Plugin.Plugins.GetPlugins <CacheProviderAttribute>())
            {
                sl.AddComponent(string.Format("kiss.cache.{0}", item.Name), typeof(ICacheProvider), item.Decorates);
            }
        }