.NET:是否有一个类将一个类的属性复制到另一个类

Bob*_*Bob 9 .net c# vb.net

我写了一个函数,将一个类的属性复制到另一个类,所以制作一个对象的副本.

所以像

MyObject myObject = myOtherObject.MyCustomCopy(myObject)
Run Code Online (Sandbox Code Playgroud)

其中myObject和myOtherObject属于同一类型.我这样做是基本做的

myObject.prop1 = myOtherObject.prop1
myObject.prop2 = myOtherObject.prop2
myObject.prop3 = myOtherObject.prop3
return myObject
Run Code Online (Sandbox Code Playgroud)

我很确定在过去我使用.NET对象自动完成这个,通过反思我猜,但不记得了......或者我想象这样的方法存在?

是的我知道自动映射器,但我确信(现在不是那么多)有一个.NET对象可以完成这项工作.也许不吧!

Dar*_*rov 11

您可以查看AutoMapper.


Pre*_*gha 5

您应该使用为此作业构建的AutoMapper.


And*_*eas 5

 public static class ext
{
    public static void CopyAllTo<T>(this T source, T target)
    {
        var type = typeof(T);
        foreach (var sourceProperty in type.GetProperties())
        {
            var targetProperty = type.GetProperty(sourceProperty.Name);
            targetProperty.SetValue(target, sourceProperty.GetValue(source, null), null);
        }
        foreach (var sourceField in type.GetFields())
        {
            var targetField = type.GetField(sourceField.Name);
            targetField.SetValue(target, sourceField.GetValue(source));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


pyC*_*der 1

尝试此链接中的描述:

.NET 反射 - 复制类属性