あるオブジェクトから別のオブジェクトにプロパティ値をコピーする単一の静的メソッドを持つクラスを作成しました。各オブジェクトがどのタイプであるかは気にせず、それらが同一のプロパティを持っているだけです。それは私が必要とすることをするので、それ以上のエンジニアリングはしませんが、どのような改善を行いますか?
コードは次のとおりです。
public class ShallowCopy
{
public static void Copy<From, To>(From from, To to)
where To : class
where From : class
{
Type toType = to.GetType();
foreach (var propertyInfo in from.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance))
{
toType.GetProperty(propertyInfo.Name).SetValue(to, propertyInfo.GetValue(from, null), null);
}
}
}
私は次のように使用しています:
EmployeeDTO dto = GetEmployeeDTO();
Employee employee = new Employee();
ShallowCopy.Copy(dto, employee);