public Configuration() { TargetConfigurations = new Dictionary <Type, TargetConfiguration>(0); ValueProviders = new ValueProvider[] { new DictionaryValueProvider(), new DefaultValueProvider(), }; ValueConverters = new ValueConverter[] { new EnumValueConverter(), new DefaultValueConverter(), }; ValueBinders = new ValueBinder[] { new IEnumerableValueBinder(this), new DefaultValueBinder(this) }; }
/// <summary> /// Finds the source enumerable member. /// </summary> /// <param name="source"></param> /// <param name="targetMember"></param> /// <param name="targetConfiguration"></param> /// <param name="valueProvider"></param> /// <returns></returns> private static IEnumerable FindSourceEnumerable(object source, IMember targetMember, TargetConfiguration targetConfiguration, ValueProvider valueProvider) { string name = GetSourceNameOrDefault(targetMember, targetConfiguration); if (valueProvider.TryGetValue(source, name, out object sourceValue) && sourceValue is IEnumerable enumerable) { return(enumerable); } return(null); }