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