public static object ConvertObject(PropertyInfo prop, object val, Type objectType)
{
// Should i return default(T) if property.PropertyType is a valuetype?
if (val == null)
{
return(val);
}
if (prop.PropertyType.IsAssignableFrom(val.GetType()))
{
return(val);
}
if (prop.PropertyType == typeof(string))
{
return(val.ToString());
}
TypeConverter tc = Helper.GetConverterFor(prop, prop.PropertyType);
if (tc == null)
{
tc = new MoonlightTypeConverter(prop.Name, prop.PropertyType);
}
return(tc.ConvertFrom(null, Helper.DefaultCulture, val));
}