I am working with a reflection based object translator.
it basically loops through properties of an object, and assigns the values to properties with the same name/
string is an exception, the only primitive type in .NET which is a reference type. You have to consider this exception in your code so that you check if IsClass is true and type is not the same as System.String.
IsClass
System.String