public object Transform(Dictionary <string, string> inputDictionary, Type outputType, EntitySetting entitySetting) { var outputObject = Activator.CreateInstance(outputType); // Set default values foreach (var defaultValueSetting in entitySetting.DefaultValueSettings) { var propertyName = defaultValueSetting.PropertyName; var defaultValueProvider = defaultValueSetting.Provider; var defaultValue = defaultValueProvider.GetDefaultValue(); ReflectionUtil.SetProperty(outputObject, propertyName, defaultValue); } // Set values from data provider foreach (var inputKeyValuePair in inputDictionary) { var propertyName = inputKeyValuePair.Key; var propertyValue = inputKeyValuePair.Value; _propertyHandler.SetProperty(outputObject, propertyName, propertyValue, entitySetting); } return(outputObject); }