コード例 #1
0
        public Boolean Load(string sectionName = "ModConfigSection")
        {
            bool result = false;

            //!TODO cleaning of private variables, making it ready for loading, removing old loaded instances
            typeFactory.DeepSearch = true;
            typeFactory.LoadPreloadedAssemblies();

            System.Configuration.Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ModConfigSection section = configuration.GetSection(sectionName) as ModConfigSection;

            configuration.SaveAs(".\\somewhere\\external.xml", ConfigurationSaveMode.Full, true);

            if (section != null)
            {
                pluginsLoaded = LoadPlugins(section.PluginCollection);
                if (pluginsLoaded)
                {
                    modulesLoaded = LoadModules(section.ModuleConfigCollection, 0);
                    if (modulesLoaded)
                    {
                        for (int i = 0; i < modules.Count; i++)
                        {
                            IInitiator initiator = modules[i].Instance as IInitiator;
                            if (initiator != null)
                            {
                                if ((initiator.Initialize() == false) && !initiator.IsInitialized)
                                {
                                    throw new ConfigurationErrorsException("Couldn't load " + modules[i].Type);
                                }
                            }
                        }
                        result = true;
                    }
                }
            }
            return(result);
        }
コード例 #2
0
ファイル: ModConfigSectionWriter.cs プロジェクト: icprog/Mod
 public ModConfigSectionWriter()
 {
     ModConfigSection = null;
 }