示例#1
0
        public void ConvertFromSettingTest()
        {
            MockConvertible mock = StringSettingConvertibleTools.ConvertFromSetting <MockConvertible>(MockValue);

            Assert.AreEqual(MockValue, mock.Value);

            mock = (MockConvertible)StringSettingConvertibleTools.ConvertFromSetting(typeof(MockConvertible), MockValue);
            Assert.AreEqual(MockValue, mock.Value);
        }
示例#2
0
        public void ConvertBackTest()
        {
            MockConvertible mock = new MockConvertible()
            {
                Value = MockValue
            };

            string value  = null;
            bool   result = StringSettingConvertibleTools.ConvertBack(mock, out value);

            Assert.IsTrue(result);
            Assert.AreEqual(mock.Value, value);
        }
示例#3
0
        private object GetOrCacheValue()
        {
            if (!_valueCached)
            {
                if (!IsUserValue)
                {
                    return(StringSettingConvertibleTools.ConvertFromSetting(this.SettingType, _defaultValueSerialized));
                }

                _value       = StringSettingConvertibleTools.ConvertFromSetting(this.SettingType, _valueSerialized);
                _valueCached = true;
            }
            return(_value);
        }
示例#4
0
        private void SetValue(object value)
        {
            // Only set the value if it the types match
            if (value != null && value.GetType().IsSubclassOf(SettingType))
            {
                return;
            }
            if (value == this.Value)
            {
                return;
            }

            string valueToSave = null;

            if (!StringSettingConvertibleTools.ConvertBack(value, out valueToSave))
            {
                valueToSave = Convert.ToString(value);
            }

            SetSerializedValueAndInvalidateCache(valueToSave);
            IsUserValue = true;
        }