コード例 #1
0
        private Dictionary <string, IList <CtsConfigurationSetting> > GetConfigurationSubSections()
        {
            Dictionary <string, IList <CtsConfigurationSetting> > dictionary = this.configurationSubSections;

            if (dictionary == null)
            {
                CtsConfigurationSection ctsConfigurationSection = null;
                try
                {
                    ctsConfigurationSection = (ConfigurationManager.GetSection("CTS") as CtsConfigurationSection);
                }
                catch (ConfigurationErrorsException)
                {
                    this.LogConfigurationErrorEvent();
                }
                CtsConfigurationSetting ctsConfigurationSetting = null;
                try
                {
                    string value = ConfigurationManager.AppSettings["TemporaryStoragePath"];
                    if (!string.IsNullOrEmpty(value))
                    {
                        ctsConfigurationSetting = new CtsConfigurationSetting("TemporaryStorage");
                        ctsConfigurationSetting.AddArgument("Path", value);
                    }
                }
                catch (ConfigurationErrorsException)
                {
                    this.LogConfigurationErrorEvent();
                }
                lock (this.lockObject)
                {
                    dictionary = this.configurationSubSections;
                    if (dictionary == null)
                    {
                        if (ctsConfigurationSection != null)
                        {
                            dictionary = ctsConfigurationSection.SubSectionsDictionary;
                        }
                        else
                        {
                            dictionary = new Dictionary <string, IList <CtsConfigurationSetting> >();
                            dictionary.Add(string.Empty, new List <CtsConfigurationSetting>());
                        }
                        if (ctsConfigurationSetting != null)
                        {
                            IList <CtsConfigurationSetting> list = dictionary[string.Empty];
                            bool flag2 = false;
                            foreach (CtsConfigurationSetting ctsConfigurationSetting2 in list)
                            {
                                if (string.Equals(ctsConfigurationSetting2.Name, ctsConfigurationSetting.Name))
                                {
                                    flag2 = true;
                                    break;
                                }
                            }
                            if (!flag2)
                            {
                                list.Add(ctsConfigurationSetting);
                            }
                        }
                        this.configurationSubSections = dictionary;
                    }
                }
            }
            return(dictionary);
        }
コード例 #2
0
        /// <summary>
        /// Gets the configuration subsection specified.
        /// </summary>
        /// <param name="subSectionName">Name of the subsection.</param>
        /// <returns>
        /// A list of <see cref="CtsConfigurationSetting"/>s for the specified section.
        /// </returns>
        public IList <CtsConfigurationSetting> GetConfiguration(string subSectionName)
        {
            IList <CtsConfigurationSetting> subSection;

            if (this.configurationSubSections == null)
            {
                lock (this.lockObject)
                {
                    if (this.configurationSubSections == null)
                    {
                        try
                        {
                            CtsConfigurationSection section = ConfigurationManager.GetSection("CTS") as CtsConfigurationSection;

                            if (section != null)
                            {
                                this.configurationSubSections = section.SubSectionsDictionary;
                            }
                            else
                            {
                                this.configurationSubSections = new Dictionary <string, IList <CtsConfigurationSetting> >
                                {
                                    { string.Empty, new List <CtsConfigurationSetting>() }
                                };
                            }

                            string path = ConfigurationManager.AppSettings["TemporaryStoragePath"];

                            if (!string.IsNullOrEmpty(path))
                            {
                                CtsConfigurationSetting newSetting = new CtsConfigurationSetting("TemporaryStorage");
                                newSetting.AddArgument("Path", path);

                                subSection = this.configurationSubSections[string.Empty];

                                subSection.Add(newSetting);
                            }

                            ConfigurationManager.RefreshSection("CTS");
                        }
                        catch (ConfigurationErrorsException /*exception*/)
                        {
                            ApplicationServices.Provider.LogConfigurationErrorEvent();

                            this.configurationSubSections = new Dictionary <string, IList <CtsConfigurationSetting> >
                            {
                                { string.Empty, new List <CtsConfigurationSetting>() }
                            };
                        }
                    }
                }
            }

            if (subSectionName == null)
            {
                subSectionName = string.Empty;
            }

            if (!this.configurationSubSections.TryGetValue(subSectionName, out subSection))
            {
                subSection = EmptySubSection;
            }

            return(subSection);
        }