예제 #1
0
        private static void LoadResourceItem(string Folder, string TypeName, string ConfigNamespace, System.Reflection.Assembly configAssembly, string item)
        {
            string itemName = item.Substring(ConfigNamespace.Length + 1);

            string[] tokens = itemName.Split('.');

            using (Stream fileStream = configAssembly.GetManifestResourceStream(item))
            {
                using (XmlTextReader xreader = new XmlTextReader(fileStream))
                {
                    XDocument doc = XDocument.Load(xreader);

                    IConfigurationObject config = ConfigurationObjectFactory.CreateConfigurationObject(TypeName);

                    if (tokens.Length == 3)
                    {
                        //simple folder/child relationship
                        config.Load(doc, Folder);
                    }
                    else
                    {
                        config.Load(doc, tokens[1]);
                    }
                }
            }
        }
예제 #2
0
        private static void LoadResourceItems(string Folder, string entityName, string ConfigResourceDLL, string ConfigNamespace)
        {
            IConfigurationObject config = ConfigurationObjectFactory.CreateConfigurationObject(entityName);

            config.ClearAll();

            System.Reflection.Assembly configAssembly = System.Reflection.Assembly.Load(ConfigResourceDLL);

            var retVal = from item in configAssembly.GetManifestResourceNames()
                         where
                         (
                (item.ToLower().StartsWith(String.Format("{0}.{1}.", ConfigNamespace.ToLower(), Folder.ToLower()))) &&
                (item.ToLower().EndsWith(".xml"))
                         )
                         orderby item
                         select item
            ;

            List <string> items = retVal.ToList <string>();

            foreach (string item in items)
            {
                LoadResourceItem(Folder, entityName, ConfigNamespace, configAssembly, item);
            }
        }
예제 #3
0
        private static void LoadFile(string entityName, string file)
        {
            try
            {
                XDocument doc    = XDocument.Load(file);
                string    folder = Path.GetDirectoryName(file).Substring(Path.GetDirectoryName(file).LastIndexOf("\\") + 1);

                IConfigurationObject config = ConfigurationObjectFactory.CreateConfigurationObject(entityName);
                config.Load(doc, folder);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(String.Format("Error loading {0} configuration file: {1}", entityName, file), ex);
            }
        }
예제 #4
0
        private static void LoadDirectoryItems(string FolderPath, string entityName, bool ClearCollection)
        {
            string[] files = Directory.GetFiles(FolderPath, "*.xml");

            string[] childfolders = Directory.GetDirectories(FolderPath);

            if (ClearCollection)
            {
                IConfigurationObject config = ConfigurationObjectFactory.CreateConfigurationObject(entityName);
                config.ClearAll();
            }

            foreach (string dir in childfolders)
            {
                LoadDirectoryItems(dir, entityName, false);
            }

            foreach (string file in files)
            {
                LoadFile(entityName, file);
            }
        }