コード例 #1
0
        // 修改applicationSettings中App.Properties.Settings中服务的IP地址
        public static void UpdateConfig(string configPath, string serverIP)
        {
            Configuration             config                = ConfigurationManager.OpenExeConfiguration(configPath);
            ConfigurationSectionGroup sec                   = config.SectionGroups["applicationSettings"];
            ConfigurationSection      configSection         = sec.Sections["DataService.Properties.Settings"];
            ClientSettingsSection     clientSettingsSection = configSection as ClientSettingsSection;

            if (clientSettingsSection != null)
            {
                SettingElement element1 = clientSettingsSection.Settings.Get("DataService_SystemManagerWS_SystemManagerWS");
                if (element1 != null)
                {
                    clientSettingsSection.Settings.Remove(element1);
                    string oldValue = element1.Value.ValueXml.InnerXml;
                    element1.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);
                    clientSettingsSection.Settings.Add(element1);
                }

                SettingElement element2 = clientSettingsSection.Settings.Get("DataService_EquipManagerWS_EquipManagerWS");
                if (element2 != null)
                {
                    clientSettingsSection.Settings.Remove(element2);
                    string oldValue = element2.Value.ValueXml.InnerXml;
                    element2.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);
                    clientSettingsSection.Settings.Add(element2);
                }
            }
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("applicationSettings");
        }
コード例 #2
0
        /// <summary>
        /// 从SectionGroup中读取Section。在Section写在Group里时使用
        /// </summary>
        /// <param name="sectionName">section name</param>
        /// <param name="groups">SectionGroup</param>
        /// <returns>ConfigurationSection</returns>
        private static ConfigurationSection GetSectionFromGroups(string sectionName, ConfigurationSectionGroupCollection groups)
        {
            ConfigurationSection section = null;

            for (int i = 0; i < groups.Count; i++)
            {
                try
                {
                    ConfigurationSectionGroup group = groups[i];

                    if (group.SectionGroups.Count > 0)
                    {
                        section = GetSectionFromGroups(sectionName, group.SectionGroups);
                    }
                    else
                    {
                        section = group.Sections[sectionName];
                    }

                    if (section != null)
                    {
                        break;
                    }
                }
                catch (System.IO.FileNotFoundException)
                {
                }
            }

            return(section);
        }
コード例 #3
0
    /// <summary>
    /// Retrieve specific section value from the web.config
    /// </summary>
    /// <param name="configSection">Main Web.config section</param>
    /// <param name="subSection">Child Section{One layer down}</param>
    /// <param name="innersection">Keyed on Section Name</param>
    /// <param name="propertyName">Element property name</param>
    /// <returns></returns>
    /// <example>string setting = NoordWorld.Common.Utilities.SiteSupport.RetrieveApplicationSetting("applicationSettings", "NoordWorld.ServiceSite.Properties.Settings", "ServiceWS_SrvWebReference_Service", "value")</example>
    public static string RetrieveApplicationSetting(string configSection, string subSection, string innersection, string propertyName)
    {
        string            result            = string.Empty;
        HttpWorkerRequest fakeWorkerRequest = null;

        try {
            using (TextWriter textWriter = new StringWriter()) {
                fakeWorkerRequest = new SimpleWorkerRequest("default.aspx", "", textWriter);
                var           fakeHTTPContext = new HttpContext(fakeWorkerRequest);
                Configuration config          = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
                {
                    ExeConfigFilename = fakeHTTPContext.Server.MapPath(@"~/Web.config")
                }, ConfigurationUserLevel.None);
                ConfigurationSectionGroup group = config.SectionGroups[configSection];
                if (group != null)
                {
                    ClientSettingsSection clientSection = group.Sections[subSection] as ClientSettingsSection;
                    if (clientSection != null)
                    {
                        SettingElement settingElement = clientSection.Settings.Get(innersection);
                        if (settingElement != null)
                        {
                            result = (((SettingValueElement)(settingElement.ElementInformation.Properties[propertyName].Value)).ValueXml).InnerText;
                        }
                    }
                }
            }
        } catch (Exception ex) {
            throw ex;
        } finally {
            fakeWorkerRequest.CloseConnection();
        }
        return(result);
    }
コード例 #4
0
        private void CreateAllSectionName(ref List <string> sectionNameList, ConfigurationSectionGroup sectionGroup)
        {
            #region Contracts

            if (sectionGroup == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            // Section
            foreach (ConfigurationSection childSection in sectionGroup.Sections)
            {
                ReflectConfigurationSection section = childSection as ReflectConfigurationSection;
                if (section != null)
                {
                    sectionNameList.Add(section.SectionInformation.SectionName);
                }
            }

            // SectionGroup
            foreach (ConfigurationSectionGroup childSectionGroup in sectionGroup.SectionGroups)
            {
                this.CreateAllSectionName(ref sectionNameList, childSectionGroup);
            }
        }
コード例 #5
0
        //</Snippet8>

        //<Snippet9>
        static void Remove()
        {
            try
            {
                System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                        ConfigurationUserLevel.None);

                ConfigurationSectionGroup customGroup =
                    config.SectionGroups.Get("CustomGroup");

                if (customGroup != null)
                {
                    config.SectionGroups.Remove("CustomGroup");
                    config.Save(ConfigurationSaveMode.Full);
                }
                else
                {
                    Console.WriteLine(
                        "CustomGroup does not exists.");
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }
コード例 #6
0
        //</Snippet7>

        //<Snippet8>
        static void GetItems()
        {
            try
            {
                System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                        ConfigurationUserLevel.None);

                ConfigurationSectionGroupCollection groups =
                    config.SectionGroups;

                ConfigurationSectionGroup group1 =
                    groups.Get("system.net");

                ConfigurationSectionGroup group2 =
                    groups.Get("system.web");


                Console.WriteLine(
                    "Group1: {0}", group1.Name);

                Console.WriteLine(
                    "Group2: {0}", group2.Name);
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }
コード例 #7
0
        //</Snippet3>

        //<Snippet4>
        static void GetGroup()
        {
            try
            {
                System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                        ConfigurationUserLevel.None);

                ConfigurationSectionGroup customGroup =
                    config.SectionGroups.Get("CustomGroup");


                if (customGroup == null)
                {
                    Console.WriteLine(
                        "Failed to load CustomSection.");
                }
                else
                {
                    // Display section information
                    Console.WriteLine("Section group name:       {0}",
                                      customGroup.SectionGroupName);
                    Console.WriteLine("Name:       {0}",
                                      customGroup.Name);
                    Console.WriteLine("Type:   {0}",
                                      customGroup.Type);
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }
        public void CreateConfigFile(SampleRunnerOptions options, out string newConfigFilePath)
        {
            newConfigFilePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".config");
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap {
                ExeConfigFilename = newConfigFilePath
            };
            var config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None, options.EnablePreloadConfigFileCheckBox);

            // Create configuration
            //ExternalTypesFooDemoGroup grp = new ExternalTypesFooDemoGroup();
            ConfigurationSectionGroup sectionGroup = new ConfigurationSectionGroup();

            ExternalTypesFooDemoSection section = new ExternalTypesFooDemoSection();

            config.SectionGroups.Add("externalTypesFooDemoGroup", sectionGroup);

            config.Sections.Add("externalTypesFooDemoSection", section);

            section.Foo.Baz = new CustomBlock {
                Height = 42, Width = 314, Depth = 312
            };

            section.Bars.Add(new Bar {
                Crackle = 3.14F, Snap = true
            });
            section.Bars.Add(new Bar {
                Crackle = 2.71828F, Snap = false
            });

            config.Save();
        }
コード例 #9
0
        public void CreateConfigurationFromAppConfig()
        {
            if (ConfigurationExists)
            {
                throw new ConfigurationException("Configuration file already exists");
            }

            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            ConfigurationSectionGroup configGroups = config.SectionGroups[Properties.Resources.APPLICATION_CONFIGURATION_SECTION];

            string directoryPath = Path.GetDirectoryName(ConfigurationFilePath);

            Directory.CreateDirectory(directoryPath);

            XmlTextWriter xmlTextWriter = new XmlTextWriter(ConfigurationFilePath, Encoding.UTF8);

            xmlTextWriter.WriteStartDocument(false);
            xmlTextWriter.Formatting  = Formatting.Indented;
            xmlTextWriter.Indentation = 4;
            xmlTextWriter.WriteStartElement(configGroups.SectionGroupName);
            foreach (ConfigurationSection section in configGroups.Sections)
            {
                xmlTextWriter.WriteNode(XmlReader.Create(new StringReader(section.SectionInformation.GetRawXml())), false);
            }
            xmlTextWriter.WriteEndElement();
            xmlTextWriter.WriteEndDocument();
            xmlTextWriter.Close();

            LoadConfiguration();
        }
コード例 #10
0
        public void UpdateConfigurationFileFromAppConfig()
        {
            System.Configuration.Configuration config       = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ConfigurationSectionGroup          configGroups = config.SectionGroups[Properties.Resources.APPLICATION_CONFIGURATION_SECTION];
            XmlNode parentNode = null;

            foreach (XmlNode node in XmlDocument.ChildNodes)
            {
                parentNode = node.Name.Equals(Properties.Resources.APPLICATION_CONFIGURATION_SECTION) ? node : parentNode;
            }


            foreach (ConfigurationSection section in configGroups.Sections)
            {
                XmlNode xmlSection = null;
                foreach (XmlNode childNode in parentNode.ChildNodes)
                {
                    if (childNode.Name.Equals(section.SectionInformation.Name))
                    {
                        xmlSection = childNode;
                    }
                }
                if (xmlSection == null)
                {
                    parentNode.InnerXml += section.SectionInformation.GetRawXml();
                }
            }

            UpdateConfigurationFile();
        }
コード例 #11
0
        /// <summary>
        /// 修改system.serviceModel下所有服务终结点的IP地址
        /// </summary>
        /// <param name="configPath">Assembly.GetEntryAssembly().Location</param>
        /// <param name="serverIP"></param>
        /// <param name="serverPort"></param>
        public static void UpdateServiceModelConfig(string configPath, string serverIP, string serverPort)
        {
            Configuration             config = ConfigurationManager.OpenExeConfiguration(configPath);
            ConfigurationSectionGroup sec    = config.SectionGroups["system.serviceModel"];
            ServiceModelSectionGroup  serviceModelSectionGroup = sec as ServiceModelSectionGroup;
            ClientSection             clientSection            = serviceModelSectionGroup.Client;

            foreach (ChannelEndpointElement item in clientSection.Endpoints)
            {
                string address = "";
                //端口号为空
                if (string.IsNullOrEmpty(serverPort))
                {
                    address = item.Address.Scheme + "://" + serverIP + item.Address.AbsolutePath;
                }
                else
                {
                    address = item.Address.Scheme + "://" + serverIP + ":" + serverPort + item.Address.AbsolutePath;
                }
                item.Address = new Uri(address);
                //string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+\b";
                //string address = item.Address.ToString();
                //string replacement = string.Format("{0}:{1}", serverIP, serverPort);
                //address = Regex.Replace(address, pattern, replacement);
                //item.Address = new Uri(address);
            }
            foreach (ServiceElement el in serviceModelSectionGroup.Services.Services)
            {
                string address = el.Host.BaseAddresses[0].BaseAddress;
                int    idx     = address.IndexOf("/");
                string scheme  = address.Substring(0, idx + 2);
                address = address.Replace("net.tcp://", "")
                          .Replace("net.pipe://", "")
                          .Replace("net.msmq://", "")
                          .Replace("http://", "")
                          .Replace("https://", "")
                          .Replace("net.p2p://", "");
                idx = address.IndexOf("/");
                string absolutePath = address.Substring(idx);
                //端口号为空
                if (string.IsNullOrEmpty(serverPort))
                {
                    address = scheme + serverIP + absolutePath;
                }
                else
                {
                    address = scheme + serverIP + ":" + serverPort + absolutePath;
                }
                el.Host.BaseAddresses[0].BaseAddress = address;
                //string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+\b";
                //string baseAddress = el.Host.BaseAddresses[0].BaseAddress;
                //string replacement = string.Format("{0}:{1}", serverIP, serverPort);
                //string address = Regex.Replace(baseAddress, pattern, replacement);
                //el.Host.BaseAddresses[0].BaseAddress = address;
            }

            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("system.serviceModel");
        }
コード例 #12
0
        static ConfigurationBroker()
        {
            Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            group = (ChapterConfigurationSectionGroup)configuration.GetSectionGroup("MA.PracticalPattern");

            ConfigurationSectionGroup groupCreator = configuration.GetSectionGroup("MA.PracticalPattern");
        }
コード例 #13
0
        /// <summary>
        /// Retrieves specified configuration section. Recursively traverses .config file's section groups.
        /// </summary>
        /// <typeparam name="T">Configuration section type.</typeparam>
        /// <param name="group">Current configuration section group.</param>
        /// <returns>Configuration section object with config values.</returns>
        private static T TraverseConfigSections <T>(ConfigurationSectionGroup group) where T : ConfigurationSection
        {
            foreach (var section in @group.Sections.Cast <ConfigurationSection>().Where(section => Type.GetType(section.SectionInformation.Type, false) == typeof(T)))
            {
                return((T)section);
            }

            return((from ConfigurationSectionGroup g in @group.SectionGroups select TraverseConfigSections <T>(g)).FirstOrDefault(section => section != null));
        }
コード例 #14
0
        /// <summary>
        /// 获取配置组中定义的所有子配置段信息
        /// </summary>
        /// <param name="group">配置组</param>
        /// <returns>包含配置组中声明的所有ConfigurationSection属性信息的迭代器</returns>
        public static IEnumerator <PropertyInfo> GetDeclaredSubSections(ConfigurationSectionGroup group)
        {
            if (object.ReferenceEquals(null, group))
            {
                return(null);
            }

            return(GetDeclaredSubSections(group.GetType()));
        }
コード例 #15
0
 //<Snippet9>
 static void ShowSectionGroupCollectionInfo(ConfigurationSectionGroupCollection mySectionGroupCollection)
 {
     foreach (String mySectionGroupName in mySectionGroupCollection.Keys)
     {
         ConfigurationSectionGroup mySectionGroup =
             (ConfigurationSectionGroup)mySectionGroupCollection[mySectionGroupName];
         ShowSectionGroupInfo(mySectionGroup);
     }
 }
コード例 #16
0
        /// <summary>
        /// Get applicationConfiguration value from app.<ENV>.config file
        /// This automatically loads the config file for the startup application i.e. Specs
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string Get(string key)
        {
            Configuration             config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ConfigurationSectionGroup applicationSettingsGroup = config.GetSectionGroup("applicationSettings");
            ConfigurationSection      applicationConfigSection = applicationSettingsGroup.Sections["BPOWBAutomation.Properties.Settings"];
            ClientSettingsSection     clientSection            = (ClientSettingsSection)applicationConfigSection;

            return(clientSection.Settings.Get(key).Value.ValueXml.InnerText);
        }
コード例 #17
0
        public static string GetConfigSection(string sectionGroupName, string sectionName, string sectionKey)
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            ConfigurationSectionGroup applicationSectionGroup  = config.GetSectionGroup(sectionGroupName);
            ConfigurationSection      applicationConfigSection = applicationSectionGroup.Sections[sectionName];
            ClientSettingsSection     clientSection            = (ClientSettingsSection)applicationConfigSection;

            return(clientSection.Settings.Get(sectionKey).Value.ValueXml.InnerText);
        }
コード例 #18
0
        public IEnumerable <T> ReadGroup <T>(String groupName) where T : ConfigurationSection
        {
            ConfigurationSectionGroup group = Configuration.SectionGroups.Get(groupName);

            if (group != null)
            {
                return(group.Sections.OfType <T>());
            }
            return(Enumerable.Empty <T>());
        }
コード例 #19
0
        //</Snippet12>

        //<Snippet13>
        static void ForceDeclaration(
            ConfigurationSectionGroup sectionGroup,
            bool force)
        {
            sectionGroup.ForceDeclaration(force);

            Console.WriteLine(
                "Forced declaration for the group: {0} is {1}",
                sectionGroup.Name, force.ToString());
        }
コード例 #20
0
        private ConfigurationSectionGroup GetSectionGroup()
        {
            ConfigurationSectionGroup group = config.SectionGroups["ExtentProgram"];

            if (group == null)
            {
                config.SectionGroups.Add("ExtentProgram", new ConfigurationSectionGroup());
            }
            return(group);
        }
コード例 #21
0
        ///// <summary>
        ///// 从配置文件中加载SAP的连接配置。
        ///// </summary>
        ///// <returns></returns>
        //public static RfcDestinationCollection LoadSAPAllConfig()
        //{

        //    //if (SAPINT.SAPConfigList.loadDefaultSystemListFromSAPLogonIniFile())
        //    //{
        //    //    // MessageBox.Show("成功加载SAP GUI配置文件!");
        //    //}


        //    try
        //    {

        //        RfcGeneralConfiguration configuration2 = getSAPGeneralConfiguration();
        //        RfcDestinationCollection clientsSetting = getClientSettings();
        //        if (clientsSetting != null)
        //        {
        //            return clientsSetting;
        //         //    RfcDestinationManager.RegisterDestinationConfiguration(new DefaultDestinationConfiguration(clientsSetting));
        //        }

        //        RfcServerCollection severSetting = getServerSettings();
        //        if (severSetting != null)
        //        {
        //         //   RfcServerManager.RegisterServerConfiguration(new DefaultServerConfiguration(severSetting));
        //        }

        //        // RfcServerManager.loadedFromParameterFile = true;

        //    }
        //    catch (Exception)
        //    {

        //        throw new Exception("无法从配置文件加载");
        //    }

        //}

        /// <summary>
        /// 加载根节点
        /// </summary>
        private static void getSapSectionGroup()
        {
            System.Configuration.Configuration configuration = null;
            // configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            configuration = SAPGlobalSettings.config;
            sectionGroup  = configuration.GetSectionGroup("SAPINT");
            if (sectionGroup == null)
            {
                throw new Exception("无法从配置文件加载SAP配置!!");
            }
        }
コード例 #22
0
        // Methods
        public void AddGroup(string groupName)
        {
            #region Contracts

            if (string.IsNullOrEmpty(groupName) == true)
            {
                throw new ArgumentNullException();
            }

            #endregion

            // Require
            ReflectConfigurationSection existSection = _configuration.GetSection(groupName) as ReflectConfigurationSection;
            if (existSection != null)
            {
                return;
            }

            // Variables
            string[] sectionNameChain = groupName.Split('/');
            ConfigurationSectionGroup parentSectionGroup = _configuration.RootSectionGroup;

            // Add
            for (int i = 0; i < sectionNameChain.Length; i++)
            {
                // SectionGroup
                if (i < sectionNameChain.Length - 1)
                {
                    ConfigurationSectionGroup sectionGroup = parentSectionGroup.SectionGroups.Get(sectionNameChain[i]);
                    if (sectionGroup == null)
                    {
                        sectionGroup = new ConfigurationSectionGroup();
                        parentSectionGroup.SectionGroups.Add(sectionNameChain[i], sectionGroup);
                    }
                    parentSectionGroup = sectionGroup;
                    continue;
                }

                // Section
                if (i >= sectionNameChain.Length - 1)
                {
                    ConfigurationSection section = parentSectionGroup.Sections.Get(sectionNameChain[i]);
                    if (section == null)
                    {
                        section = new ReflectConfigurationSection();
                        parentSectionGroup.Sections.Add(sectionNameChain[i], section);
                    }
                    continue;
                }
            }

            // Save
            _configuration.Save();
        }
コード例 #23
0
        /// <summary>
        /// Elimina una seccion de la Configuration /  applicationSettings
        /// </summary>
        /// <param name="pConfiguration">Configuration App.Config</param>
        /// <param name="pSectionName">Nombre de la seccion</param>
        internal static void RemoveSection(Configuration pConfiguration, String pSectionName)
        {
            ConfigurationSectionGroup wSectionGroup = pConfiguration.GetSectionGroup("applicationSettings");

            ConfigurationSection wSection = wSectionGroup.Sections.Get(pSectionName);//ConfigurationSection wSection = pConfiguration.GetSection("applicationSettings/" + pSectionName);

            wSection.SectionInformation.ForceSave = true;
            pConfiguration.GetSectionGroup("applicationSettings").Sections.Remove(pSectionName);

            pConfiguration.Sections.Remove(pSectionName);
        }
コード例 #24
0
ファイル: SectionGroupsTests.cs プロジェクト: jnm2/corefx
 public void EmptySectionGroup()
 {
     using (var temp = new TempConfig(EmptySectionGroupConfiguration))
     {
         var config = ConfigurationManager.OpenExeConfiguration(temp.ExePath);
         ConfigurationSectionGroup sectionGroup = config.GetSectionGroup("emptySectionGroup");
         Assert.NotNull(sectionGroup);
         Assert.Empty(sectionGroup.Sections);
         Assert.Empty(sectionGroup.SectionGroups);
     }
 }
コード例 #25
0
        private ConfigurationSectionGroup IniSectionGroup()
        {
            ConfigurationSectionGroup group = config.SectionGroups["ExtentProgram"];

            if (group != null)
            {
                config.SectionGroups.Remove("ExtentProgram");
            }
            config.SectionGroups.Add("ExtentProgram", new ConfigurationSectionGroup());
            return(config.SectionGroups["ExtentProgram"]);;
        }
コード例 #26
0
ファイル: SectionGroupsTests.cs プロジェクト: jnm2/corefx
 public void SimpleSectionGroup()
 {
     using (var temp = new TempConfig(SimpleSectionGroupConfiguration))
     {
         var config = ConfigurationManager.OpenExeConfiguration(temp.ExePath);
         ConfigurationSectionGroup sectionGroup = config.GetSectionGroup("simpleSectionGroup");
         Assert.NotNull(sectionGroup);
         Assert.Equal(1, sectionGroup.Sections.Count);
         Assert.Equal("fooSection", sectionGroup.Sections[0].SectionInformation.Name);
         Assert.Equal("System.Configuration.NameValueSectionHandler, System", sectionGroup.Sections[0].SectionInformation.Type);
     }
 }
コード例 #27
0
ファイル: ConfManager.cs プロジェクト: jaengen/CAFM-Connect
 private static void ShowSectionGroupCollectionInfo(ConfigurationSectionGroupCollection sectionGroups)
 {
     foreach (String groupName in sectionGroups.Keys)
     {
         ConfigurationSectionGroup sectionGroup = (ConfigurationSectionGroup)sectionGroups[groupName];
         //ShowSectionGroupInfo(sectionGroup);
         if (sectionGroup.Name == "system.web")
         {
             //ForceDeclaration(sectionGroup, true);
         }
     }
 }
コード例 #28
0
 /// <summary>
 /// Monahrqs the settings.
 /// </summary>
 /// <param name="group">The group.</param>
 /// <returns></returns>
 public static MonahrqConfigurationSection MonahrqSettings(this ConfigurationSectionGroup group)
 {
     if (_monahrqConfigurationSection == null /*|| _reset*/)
     {
         lock (_objLock)
         {
             _monahrqConfigurationSection = group.Sections.OfType <MonahrqConfigurationSection>().FirstOrDefault();
         }
         //_reset = false;
     }
     return(_monahrqConfigurationSection);
 }
コード例 #29
0
        //<Snippet2>
        static void ShowSectionGroupInfo(
            ConfigurationSectionGroup sectionGroup)
        {
            //<Snippet3>
            // Get the section group name.
            indent("Section Group Name: " + sectionGroup.Name);
            //</Snippet3>

            //<Snippet11>
            // Get the fully qualified group name.
            indent("Section Group Name: " + sectionGroup.SectionGroupName);
            //</Snippet11>

            indentLevel++;

            //<Snippet4>
            indent("Type: " + sectionGroup.Type);
            //</Snippet4>
            //<Snippet5>
            indent("Is Group Required?: " +
                   sectionGroup.IsDeclarationRequired);
            //</Snippet5>
            //<Snippet6>
            indent("Is Group Declared?: " + sectionGroup.IsDeclared);
            //</Snippet6>
            indent("Contained Sections:");

            indentLevel++;
            //<Snippet7>
            foreach (ConfigurationSection section
                     in sectionGroup.Sections)
            {
                indent("Section Name:" + section.SectionInformation.Name);
            }
            //</Snippet7>
            indentLevel--;

            // Display contained section groups if there are any.
            if (sectionGroup.SectionGroups.Count > 0)
            {
                indent("Contained Section Groups:");

                indentLevel++;
                //<Snippet8>
                ConfigurationSectionGroupCollection sectionGroups =
                    sectionGroup.SectionGroups;
                ShowSectionGroupCollectionInfo(sectionGroups);
                //</Snippet8>
            }

            Console.WriteLine("");
            indentLevel--;
        }
コード例 #30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pConfiguration">Configuration del app.config</param>
        /// <param name="pSectionName">Seccion</param>
        /// <param name="pSectionGroupName">Grupo</param>
        internal static void AddSection(Configuration pConfiguration, String pSectionName, String pSectionGroupName, String pSettingTemplateName)
        {
            ConfigurationSectionGroup wConfigurationSectionGroup = null;
            SettingElement            wSettingElement            = null;
            XmlDocument doc      = new XmlDocument();
            XmlNode     xmlValue = doc.CreateNode(XmlNodeType.Element, "value", String.Empty);
            ConfigurationSectionCollection wSections = null;

            if (pSectionGroupName.Length == 0)
            {
                AddSectionFromAssembly(pConfiguration, pSectionName);
                return;
            }
            else
            {
                wConfigurationSectionGroup = pConfiguration.GetSectionGroup(pSectionGroupName);
                if (wConfigurationSectionGroup == null)
                {
                    wConfigurationSectionGroup = AddSectionGroup(pConfiguration, pSectionGroupName);
                }
                wSections = wConfigurationSectionGroup.Sections;
            }

            if (wSections.Get(pSectionName) != null)
            {
                return;
            }

            ClientSettingsSection wClientSettingsSection = new ClientSettingsSection();

            wClientSettingsSection.SectionInformation.RequirePermission = false;
            wClientSettingsSection.SectionInformation.ForceSave         = true;

            #region Settings


            Dictionary <String, String> wSettings = TemplateProvider.GetSettingDic(pSettingTemplateName);

            if (wSettings != null)
            {
                foreach (KeyValuePair <string, string> seting in wSettings)
                {
                    wSettingElement                = new SettingElement();
                    wSettingElement.Name           = seting.Key;
                    xmlValue.InnerXml              = seting.Value;
                    wSettingElement.Value.ValueXml = xmlValue.Clone();
                    wClientSettingsSection.Settings.Add(wSettingElement);
                }
            }
            #endregion
            wSections.Add(pSectionName, wClientSettingsSection);
        }
	public void Add(string name, ConfigurationSectionGroup sectionGroup) {}
	public void CopyTo(ConfigurationSectionGroup[] array, int index) {}