Пример #1
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            IArrayValueProvider values;

            if (!valueProvider.TryGetValue(_property.Property.Name, out values))
            {
                return;
            }

            var elements = new Dictionary <TKey, TValue>();

            for (var i = 0;; i++)
            {
                IArrayValueProvider elementArray;
                if (!values.TryGetValue(i, out elementArray))
                {
                    break;
                }

                TKey elementKey;
                if (elementArray.TryGetValue(0, out elementKey))
                {
                    TValue elementValue;
                    elementArray.TryGetValue(1, out elementValue);

                    elements[elementKey] = elementValue;
                }
            }

            _property.Set(obj, elements);
        }
Пример #2
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            IArrayValueProvider values;

            if (!valueProvider.TryGetValue(_property.Property.Name, out values))
            {
                return;
            }

            var elements = new List <TElement>();

            for (var i = 0;; i++)
            {
                IObjectValueProvider elementValueProvider;
                if (!values.TryGetValue(i, out elementValueProvider))
                {
                    break;
                }

                var element = (TElement)_converter.GetObject(elementValueProvider);
                elements.Add(element);
            }

            _property.Set(obj, elements.ToArray());
        }
Пример #3
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            object value;

            if (valueProvider.TryGetValue(_property.Property.Name, out value))
            {
                if (value != null)
                {
                    var valueType = value.GetType();
                    if (!valueType.IsInstanceOfType(_property.Property.PropertyType))
                    {
                        if (_typeConverter.IsValid(value))
                        {
                            if (_typeConverter.CanConvertFrom(valueType))
                            {
                                value = _typeConverter.ConvertFrom(value);
                            }
                        }
                    }
                }

                if (value != null)
                {
                    _property.Set(obj, value);
                }
            }
        }
Пример #4
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            object value;

            if (!valueProvider.TryGetValue(_property.Property.Name, out value))
            {
                return;
            }
            if (value == null)
            {
                return;
            }

            if (value is T)
            {
                _property.Set(obj, value);
                return;
            }

            if (value is string s)
            {
                var enumValue = Enum.Parse(_property.Property.PropertyType, s);
                _property.Set(obj, enumValue);
                return;
            }

            var n = Enum.ToObject(_property.Property.PropertyType, value);

            _property.Set(obj, n);
        }
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            object value;

            if (valueProvider.TryGetValue(_property.Property.Name, out value))
            {
                var nullableValue = (TValue?)value;
                _property.Set(obj, nullableValue);
            }
        }
        public object GetObject(IObjectValueProvider valueProvider)
        {
            var implementation = new TImplementation();

            for (var i = 0; i < _converters.Length; i++)
            {
                _converters[i].ApplyTo(implementation, valueProvider);
            }

            return(implementation);
        }
Пример #7
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            object value;

            if (valueProvider.TryGetValue(_property.Property.Name, out value))
            {
                TValue?nullableValue = value as TValue?;
                if (!nullableValue.HasValue)
                {
                    nullableValue = (TValue)Convert.ChangeType(value, typeof(TValue));
                }

                _property.Set(obj, nullableValue);
            }
        }
Пример #8
0
        public void ApplyTo(T obj, IObjectValueProvider valueProvider)
        {
            object value;

            if (valueProvider.TryGetValue(_property.Property.Name, out value))
            {
                var nullableValue = value as TValue?;
                if (!nullableValue.HasValue)
                {
                    var converter = TypeDescriptor.GetConverter(typeof(TValue));
                    nullableValue = converter.CanConvertFrom(value.GetType())
                        ? (TValue?)converter.ConvertFrom(value)
                        : null;
                }

                _property.Set(obj, nullableValue);
            }
        }