使用反射从同一类型的另一个实例复制所有对象值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用反射从同一类型的另一个实例复制所有对象值相关的知识,希望对你有一定的参考价值。

Say that you have a collection of objects empty but for IDs.
You want to do a foreach loop through those objects and lookup detail one at a time.
Unfortunately, in the foreach, you can't replace the references, you can only copy the new detail into the object.
This technique will populate your current reference from an object instance returned by a lookup.
  1. //Lookup result of a higher level object which has a dogs list.
  2. result.Dogs.ForEach(d => PopulateDogObject(d));
  3.  
  4. //Helper
  5. public void PopulateDogObject(IDog toDog)
  6. {
  7. IDog lookupResult = GetDogFromWebService(toDog.DogID);
  8. lookupResult.PopulateIDog(toDog);
  9. }
  10.  
  11.  
  12. //This is on the dog class.
  13. public void PopulateIDog(IDog toDog)
  14. {
  15. PropertyInfo[] fromFields = typeof(IDog).GetProperties();
  16. foreach (PropertyInfo pi in fromFields)
  17. {
  18. pi.SetValue(toDog, pi.GetValue(this, null), null);
  19. }
  20. }

以上是关于使用反射从同一类型的另一个实例复制所有对象值的主要内容,如果未能解决你的问题,请参考以下文章

将属性值从一个对象自动应用到同一类型的另一个对象?

Microsoft Access - 将对象属性复制到同一类型的另一个对象

转换后将数据从一列复制到同一表中的另一列

SQL Server:将列数据值从一个表复制到同一数据库中的另一个表

.Net C# 反射,了解只需3分钟

无法将文件从共享上的一个位置复制到同一共享上的另一个位置,无需凭据