private static bool SetMemberValue <T>
        (
            T target
            , MemberInfo member
            , string settingValueText
        )
            where T : new()
        {
            var  r = false;
            Type memberValueType = null;

            if (member.MemberType == MemberTypes.Field)
            {
                var fieldInfo = (FieldInfo)member;
                memberValueType = fieldInfo.FieldType;
            }
            else if (member.MemberType == MemberTypes.Property)
            {
                var propertyInfo = (PropertyInfo)member;
                memberValueType = propertyInfo.PropertyType;
            }
            if (memberValueType.IsNullableType())
            {
                memberValueType = memberValueType
                                  .GetNullableUnderlyingType();
            }
            var memberName   = member.Name;
            var memberSetter = DynamicExpressionTreeHelper
                               .CreateMemberSetter         //<T, object>
                                   (typeof(T), memberName);
            var methodInfo = memberValueType
                             .GetMethod
                             (
                "Parse"
                , new Type[] { typeof(string) }
                             );

            if (methodInfo != null)
            {
                var delegateInvoker = DynamicExpressionTreeHelper
                                      .CreateDelegate
                                      (
                    methodInfo
                                      );
                var settingValue = delegateInvoker
                                   .DynamicInvoke(settingValueText);
                memberSetter(target, settingValue);
            }
            else
            {
                memberSetter(target, (object)settingValueText);
            }

            r = true;
            return(r);
        }