예제 #1
0
        /// <summary>
        /// Gets property value for specified setting.
        /// </summary>
        public static T GetValue <T>(SourceAnalyzer analyzer, Settings settings, string settingName)
        {
            T customValue;

            if (GetCustomValue(analyzer, settingName, out customValue))
            {
                return(customValue);
            }

            PropertyValue <T> setting = (PropertyValue <T>)analyzer.GetSetting(settings, settingName);

            if (setting == null)
            {
                PropertyDescriptor <T> descriptor = (PropertyDescriptor <T>)GetDescriptor(analyzer, settingName);
                return(descriptor.DefaultValue);
            }

            return(setting.Value);
        }