Some Interesting Code – your thoughts required

Without going to into a long story, I found some interesting code here to convert anonymous types to any strongly typed, well, type.


public static object ToType<T>(this object obj, T type)

    //create instance of T type object:
    var tmp = Activator.CreateInstance(Type.GetType(type.ToString())); 

    //loop through the properties of the object you want to covert:          
    foreach (PropertyInfo pi in obj.GetType().GetProperties()

        //get the value of property and try 
        //to assign it to the property of T type object:
                                  pi.GetValue(obj, null), null)
      catch { }

   //return the T type object:         
   return tmp; 

From this codeproject article.

Anyone have any thoughts on this?  Is it good? Bad? Inefficient? Crap??