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