// Model
public class ParentClass{
...
}
public class ChildClass : ParentClass{
...
}
// Utility
public static O AutoCopy<O, I>(I input) where O : new()
{
var output = new O();
var InputType = typeof(I);
var InputTypeProps = InputType.GetProperties();
foreach (var InputTypeProp in InputTypeProps)
{
if (InputTypeProp.CanRead && InputTypeProp.CanWrite)
{
InputTypeProp.SetValue(output, InputTypeProp.GetValue(input, null), null);
}
}
return output;
}
// BLL
ChildClass child = ... // 前端传回的实例
ParentClass parent = AutoCopy<ParentClass, ChildClass>(child);
方法二:仅支持子对象复制给父对象
ChildClass child = ... // 前端传回的实例
ParentClass parent = child;
// 就是这么简单,但是父对象赋值给子对象还是得用方法一