Example #1
0
        public object Convert(PropertyTypeInfo typeInfo, object value)
        {
            if (value == null)
            {
                return(null);
            }

            if (typeInfo.IsFile || typeInfo.IsSystemType == false)
            {
                return(value);
            }

            if (value is ValueBehavior)
            {
                return(GetBehaviorValue((ValueBehavior)value));
            }

            var type = typeInfo.GetPropertyType();

            if (typeInfo.IsEnum)
            {
                var enumValue = (Enum)Enum.Parse(type, value.ToString());
                if (enumValue == null)
                {
                    return(value.ToString());
                }

                return(enumValue);
            }
            var converter = GetConverter(type);

            return(converter(value, type));
        }