我有两个Model类...如:DogModel和CatModel.
具体的公有属性我不知道......
现在想实现一种这样的效果:
我从网络上获取了一个DogModel的实体:myDog和一个CatModel的实体:myCat.
我想把从myCat中拷贝属性的值赋值到MyDog中.如果myDog中有形同的属性名.如:myDog.Name=myCat.Name; (注意:两个Model类...如:DogModel和CatModel.
具体的公有属性我不知道......)
用AutoMapper吧。
void CopyProperty<TSource, TTarget>(TSource source, TTarget target) { var flags = BindingFlags.Public | BindingFlags.Instance; Func<PropertyInfo, bool> filter = p => p.CanRead && p.CanWrite; var sourceProperties = typeof(TSource).GetProperties(flags).Where(filter); var targetProperties = typeof(TTarget).GetProperties(flags).Where(filter); foreach (var property in targetProperties) { var s = sourceProperties.SingleOrDefault(p => p.Name.Equals(property.Name)
&& property.DeclaringType.IsAssignableFrom(p.DeclaringType)); if (s != null) { property.SetValue(target, s.GetValue(source, null), null); } } }
强大