title: Property Set Method not found, Exception System.ArgumentException
body: <p>i am trying to copy properties to update the supplier in my code</p>
  
  <p>Here is my supplier update method</p>
  
  <pre><code>public bool UpdateSupplier(PurchaseOrderHeader header, string newSupplier)
      {
          try
          {
              var oldSupplier = GetSupplierForPoHeader(header);
              Reflection.CopyPropertyValues(oldSupplier, newSupplier);
              Console.WriteLine($"{oldSupplier} : {newSupplier}");
              _context.SaveChanges();
              return true;
          }
          catch (Exception ex)
          {
              Logger.LogException(ex);
              throw;
          }
      }
  </code></pre>
  
  <p>Here is my method for updating the values.</p>
  
  <pre><code>public static void CopyPropertyValues(object source, object destination)
      {
          try
          {
              var destProperties = destination.GetType().GetProperties();
  
              foreach (var sourceProperty in source.GetType().GetProperties())
              foreach (var destProperty in destProperties)
              {
                  if (destProperty.Name != sourceProperty.Name ||
                      !destProperty.PropertyType.IsAssignableFrom(sourceProperty.PropertyType) ||
                      destProperty.Name == "Id")
                      continue;
  
                  destProperty.SetValue(destination, sourceProperty.GetValue(source, new object[] { }),
                      new object[] { });
                  break;
              }
          }
          catch (Exception e)
          {
              Console.WriteLine(@"Inner Exception: "+e.InnerException?.Message);
              Console.WriteLine(@"Message: "+e.Message);
          }
      }
  </code></pre>
  
  <p>Any ideas?</p>
  
  <p>I checked other stack overflow questions and it seems none of them are fixing my issue, i am fairly new to reflection so i have no idea how to go about fixing this myself.</p>