Esempio n. 1
0
        /// <inheriteddoc />
        public bool TryGetValue <T>(IEnumerable <char> name, out T value, IEnumerable <char> category, DefaultConfigValueProvider <T> defaultValProvider)
        {
            if (defaultValProvider == null)
            {
                throw new ArgumentNullException("defaultValProvider");
            }

            T    temp   = default(T);
            bool result = this.InvokeRepoFunc(delegate(ConfigRepositoryBase repo, IEnumerable <char> n, IEnumerable <char> c, DefaultConfigValueProvider <T> dvp)
            {
                repo.ThrowIfNotReadable();

                bool r = false;

                string configCategory;
                string configName;
                repo.PrepareCategoryAndName(c, n,
                                            out configCategory, out configName);

                T foundValue = default(T);
                repo.OnTryGetValue <T>(configCategory, configName,
                                       ref foundValue,
                                       ref r);

                if (r)
                {
                    temp = foundValue;
                }
                else
                {
                    // not found => use default
                    temp = dvp(configCategory, configName);
                }

                return(r);
            }, name, category, defaultValProvider);

            value = temp;
            return(result);
        }
Esempio n. 2
0
 /// <inheriteddoc />
 public bool TryGetValue(IEnumerable <char> name, out object value, IEnumerable <char> category, DefaultConfigValueProvider <object> defaultValProvider)
 {
     return(this.TryGetValue <object>(name, out value, category,
                                      defaultValProvider));
 }