示例#1
0
        public void LoadModules()
        {
            if (HttpRuntime.Cache["MODULES"] == null)
            {
                XmlDocument applicationcatalogue = new XmlDocument();

                applicationcatalogue.Load(new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "\\applicationmodulecatalogue.xml"));
                XmlDocument         modulecache  = new XmlDocument();
                List <ModuleParams> moduleparams = new List <ModuleParams>();
                string modulepath = string.Empty;

                foreach (XmlNode app in applicationcatalogue.SelectNodes("ApplicationList/Application"))
                {
                    if (app.SelectSingleNode("@Enabled").Value == "true")
                    {
                        modulecache.Load(new StreamReader(AppDomain.CurrentDomain.BaseDirectory + app.SelectSingleNode("@ApplicaitonPath").Value + "\\" + app.SelectSingleNode("@ModulePath").Value + "\\Modulecatalogue.xml"));

                        foreach (XmlNode module in modulecache.SelectNodes("ModuleList/Module"))
                        {
                            if (module.SelectSingleNode("@Enabled").Value == "true")
                            {
                                modulepath = "~/" + app.SelectSingleNode("@ApplicaitonPath").Value + "/" + module.SelectSingleNode("@ModulePath").Value + "/" + module.SelectSingleNode("@NameSpace").Value + "/" + module.SelectSingleNode("@FileName").Value;
                                if (this.GetModule(module.SelectSingleNode("@NameSpace").Value) == null)
                                {
                                    _modules.Add(new Module(modulepath, module.SelectSingleNode("@NameSpace").Value, null, ""));
                                }
                                _modules.Add(new Module(modulepath, app.SelectSingleNode("@ApplicaitonPath").Value + "." + module.SelectSingleNode("@NameSpace").Value, null, ""));
                                moduleparams = new List <ModuleParams>();
                            }
                        }

                        modulecache = new XmlDocument();
                    }
                }

                System.Web.Caching.CacheItemRemovedCallback callback = new System.Web.Caching.CacheItemRemovedCallback(OnRemove);
                HttpRuntime.Cache.Insert("MODULES", _modules, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Default, callback);
            }
        }
        public void LoadModules()
        {
            if (HttpRuntime.Cache["MODULES"] == null)
            {
                XmlDocument applicationcatalogue = new XmlDocument();

                applicationcatalogue.Load(new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "\\applicationmodulecatalogue.xml"));
                XmlDocument modulecache = new XmlDocument();
                List<ModuleParams> moduleparams = new List<ModuleParams>();
                string modulepath = string.Empty;

                foreach (XmlNode app in applicationcatalogue.SelectNodes("ApplicationList/Application"))
                {
                    if (app.SelectSingleNode("@Enabled").Value == "true")
                    {
                        modulecache.Load(new StreamReader(AppDomain.CurrentDomain.BaseDirectory + app.SelectSingleNode("@ApplicaitonPath").Value + "\\" + app.SelectSingleNode("@ModulePath").Value + "\\Modulecatalogue.xml"));

                        foreach (XmlNode module in modulecache.SelectNodes("ModuleList/Module"))
                        {
                            if (module.SelectSingleNode("@Enabled").Value == "true")
                            {
                                modulepath = "~/" + app.SelectSingleNode("@ApplicaitonPath").Value + "/" + module.SelectSingleNode("@ModulePath").Value + "/" + module.SelectSingleNode("@NameSpace").Value + "/" + module.SelectSingleNode("@FileName").Value;
                                if (this.GetModule(module.SelectSingleNode("@NameSpace").Value)==null){
                                    _modules.Add(new Module(modulepath, module.SelectSingleNode("@NameSpace").Value, null, ""));
                                }
                                _modules.Add(new Module(modulepath, app.SelectSingleNode("@ApplicaitonPath").Value+"."+module.SelectSingleNode("@NameSpace").Value, null, ""));
                                moduleparams = new List<ModuleParams>();
                            }
                        }

                        modulecache = new XmlDocument();
                    }
                }

                System.Web.Caching.CacheItemRemovedCallback callback = new System.Web.Caching.CacheItemRemovedCallback(OnRemove);
                HttpRuntime.Cache.Insert("MODULES", _modules, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Default, callback);
            }
        }