/// <summary>
        /// Deserializes app.config and configures an IEngine.
        /// </summary>
        /// <returns>a default configured IEngine</returns>
        public static IEngine Configure()
        {
#if NET2
            XmlElement o = (XmlElement) ConfigurationManager.GetSection("naspect");
#else
            XmlElement o = (XmlElement) ConfigurationSettings.GetConfig("naspect");
#endif

            if (configurations.ContainsKey("app.config"))
            {
                Engine engine = new Engine("app.config");
                EngineConfiguration configuration = (EngineConfiguration) configurations["app.config"];
                engine.Configuration = configuration;
                return engine;
            }

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
#if NET2
                XmlElement xmlRoot = (XmlElement) ConfigurationManager.GetSection("naspect");
#else
				XmlElement xmlRoot = (XmlElement) ConfigurationSettings.GetConfig("naspect");
#endif

                IEngine res = deserializer.Configure(xmlRoot);

                configurations["app.config"] = res.Configuration;
                return res;
            }
        }
示例#2
0
        /// <summary>
        /// Deserializes app.config and configures an IEngine.
        /// </summary>
        /// <returns>a default configured IEngine</returns>
        public static IEngine Configure()
        {
#if NET2
            XmlElement o = (XmlElement)ConfigurationManager.GetSection("naspect");
#else
            XmlElement o = (XmlElement)ConfigurationSettings.GetConfig("naspect");
#endif

            if (configurations.ContainsKey("app.config"))
            {
                Engine engine = new Engine("app.config");
                EngineConfiguration configuration = (EngineConfiguration)configurations["app.config"];
                engine.Configuration = configuration;
                return(engine);
            }

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
#if NET2
                XmlElement xmlRoot = (XmlElement)ConfigurationManager.GetSection("naspect");
#else
                XmlElement xmlRoot = (XmlElement)ConfigurationSettings.GetConfig("naspect");
#endif

                IEngine res = deserializer.Configure(xmlRoot);

                configurations["app.config"] = res.Configuration;
                return(res);
            }
        }
        public static IEngine Configure(string fileName, bool useTypePlaceHolders)
        {
            IEngine engine = FindCachedConfiguration(fileName);

            if (engine != null)
            {
                return(engine);
            }

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(fileName);

            XmlNode xmlNode = xmlDoc.SelectSingleNode("naspect");

            if (xmlNode == null)
            {
                xmlNode = xmlDoc.SelectSingleNode("configuration");
                if (xmlNode != null)
                {
                    xmlNode = xmlNode.SelectSingleNode("naspect");
                }
            }

            if (xmlNode != null)
            {
                xmlNode = xmlNode.SelectSingleNode("configuration");
            }

            if (xmlNode != null)
            {
                lock (configurations.SyncRoot)
                {
                    ConfigurationDeserializer deserializer = new ConfigurationDeserializer();

                    IEngine res = deserializer.Configure(xmlNode, fileName, useTypePlaceHolders);

                    configurations[fileName] = res.Configuration;
                    return(res);
                }
            }

            throw new Exception(String.Format("Could not read xml conig file {0}", fileName));
        }
        private static Engine Configure(XmlElement xmlRoot)
        {
            if (configurations.ContainsKey("app.config"))
            {
                Engine engine = new Engine("app.config");
                EngineConfiguration configuration = (EngineConfiguration) configurations["app.config"];
                engine.Configuration = configuration;
                return engine;
            }

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
                Engine res = deserializer.Configure(xmlRoot);

                configurations["app.config"] = res.Configuration;
                return res;
            }
        }
        /// <summary>
        /// Deserializes app.config and configures an IEngine.
        /// </summary>
        /// <returns>a default configured IEngine</returns>
        public static IEngine Configure()
        {
            IEngine engine = FindCachedConfiguration("app.config");
            if (engine != null)
                return engine;

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
            #if NET2
                XmlElement xmlRoot = (XmlElement) ConfigurationManager.GetSection("naspect");
            #else
                XmlElement xmlRoot = (XmlElement) ConfigurationSettings.GetConfig("naspect");
            #endif

                IEngine res = deserializer.Configure(xmlRoot);

                configurations["app.config"] = res.Configuration;
                return res;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sectionName">The name of the section to configure from</param>
        /// <returns></returns>
        public static IEngine ConfigureFromSection(string sectionName)
        {
            string  key    = string.Format("app.config.{0}", sectionName);
            IEngine engine = FindCachedConfiguration(key);

            if (engine != null)
            {
                return(engine);
            }

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
#if NET2
                XmlElement xmlRoot = (XmlElement)ConfigurationManager.GetSection("naspect");
#else
                XmlElement xmlRoot = (XmlElement)ConfigurationSettings.GetConfig("naspect");
#endif
                IEngine res = null;
                foreach (XmlElement element in xmlRoot.ChildNodes)
                {
                    if (element.Name == "section")
                    {
                        if (element.Attributes["name"] != null)
                        {
                            string foundSection = element.Attributes["name"].Value;
                            res = deserializer.Configure(element);
                            configurations[key] = res.Configuration;
                            break;
                        }
                    }
                }


                return(res);
            }
        }
        /// <summary>
        /// Deserializes app.config and configures an IEngine.
        /// </summary>
        /// <returns>a default configured IEngine</returns>
        public static IEngine Configure()
        {
            IEngine engine = FindCachedConfiguration("app.config");

            if (engine != null)
            {
                return(engine);
            }

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
#if NET2
                XmlElement xmlRoot = (XmlElement)ConfigurationManager.GetSection("naspect");
#else
                XmlElement xmlRoot = (XmlElement)ConfigurationSettings.GetConfig("naspect");
#endif

                IEngine res = deserializer.Configure(xmlRoot);

                configurations["app.config"] = res.Configuration;
                return(res);
            }
        }
        public static IEngine Configure(string fileName, bool useTypePlaceHolders)
        {
            IEngine engine = FindCachedConfiguration(fileName);
            if (engine != null)
                return engine;

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(fileName);

            XmlNode xmlNode = xmlDoc.SelectSingleNode("naspect");
            if (xmlNode == null)
            {
                xmlNode = xmlDoc.SelectSingleNode("configuration");
                if (xmlNode != null)
                {
                    xmlNode = xmlNode.SelectSingleNode("naspect");
                }
            }

            if (xmlNode != null)
            {
                xmlNode = xmlNode.SelectSingleNode("configuration");
            }

            if (xmlNode != null)
            {
                lock (configurations.SyncRoot)
                {
                    ConfigurationDeserializer deserializer = new ConfigurationDeserializer();

                    IEngine res = deserializer.Configure(xmlNode, fileName, useTypePlaceHolders);

                    configurations[fileName] = res.Configuration;
                    return res;
                }
            }

            throw new Exception(String.Format("Could not read xml conig file {0}", fileName));
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sectionName">The name of the section to configure from</param>
        /// <returns></returns>
        public static IEngine ConfigureFromSection(string sectionName)
        {
            string key = string.Format("app.config.{0}", sectionName);
            IEngine engine = FindCachedConfiguration(key);
            if (engine != null)
                return engine;

            lock (configurations.SyncRoot)
            {
                ConfigurationDeserializer deserializer = new ConfigurationDeserializer();
            #if NET2
                XmlElement xmlRoot = (XmlElement)ConfigurationManager.GetSection("naspect");
            #else
                XmlElement xmlRoot = (XmlElement) ConfigurationSettings.GetConfig("naspect");
            #endif
                IEngine res = null;
                foreach (XmlElement element in xmlRoot.ChildNodes)
                {
                    if (element.Name == "section")
                    {
                        if (element.Attributes["name"] != null)
                        {
                            string foundSection = element.Attributes["name"].Value;
                            res = deserializer.Configure(element);
                            configurations[key] = res.Configuration;
                            break;
                        }
                    }
                }

                return res;
            }
        }