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); }
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()); }
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); } } }
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); }
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); } }
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); } }