Option Strict On Imports System.Reflection Public Class PropertyMover Public Shared Sub MoveProperties(ByVal source As Object, ByVal destination As Object) Dim sourceProperties = source.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance) Dim destinationProperties = destination.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance) For Each propertyInfo As PropertyInfo In sourceProperties Dim propertyName As String = propertyInfo.Name Dim sourceValue As Object = propertyInfo.GetValue(source, Nothing) Dim matchedProperties = From propInfo In destinationProperties _ Where propInfo.Name = propertyName If matchedProperties.Count > 0 Then matchedProperties(0).SetValue(destination, sourceValue, Nothing) End If Next End Sub End Class