C 使用反射來實現物件的深度複製方法

2022-10-04 01:21:15 字數 490 閱讀 6443

實現方式

通過挨個羅列的方式一次複製子物件是非常耗費人力的,如果子物件是引用型別,則還要需要考慮是否對子物件進一步深拷貝。

實際應用中,乙個類如果有幾十個子物件,挨個複製對於開發人員來說索然無味比較費時費力。

所以使用反射機制來實現。

但是如果是服務端執行的話,還是建議手動的實現。

畢竟反射機制比直接寫出來的效率要慢一些。

**:public static class deepcopyhelper

//引用型別

else

else

}else if (member.membertype == system.reflection.membertypes.property)

else}}

}程式設計客棧 }

return targetdeepcopyobj;

}程式設計客棧 }

本文標題: c# 使用反射來實現物件的深度複製方法

本文位址:

物件的深度複製

深度複製就是將引用成員指向的物件也進行複製。實際的過程是建立新的引用成員指向的物件,然後複製物件包含的資料。深度複製可能會變得非常複雜,因為引用成員指向的物件可能包含另乙個引用型別成員,最簡單的例子就是乙個線性鍊錶。如果乙個物件的成員包含了對於線性鍊錶結構的乙個引用,淺度複製 只複製了對頭結點的引用...

WPF中通過反射實現物件的複製貼上

在wpf專案開發過程中,需要實現乙個功能。在當前介面的工程列表中,實現工程的複製貼上功能。要求能夠完整拷貝被複製的工程的各個引數,並生產乙個跟被拷貝工程沒有任何關聯的新的工程。工程 結構如下 複製的操作很簡單,此處獲取到完整的工程物件資訊即可,具體的轉殖拷貝過程在貼上的函式中實現。private i...

使用fastjson實現物件的深複製

最近遇到乙個坑,之前的 將乙個訂單物件中的明細,乙個list,進行了分組。然後這個list就改變了。再往後,他們認為這個list沒變,又將這個list作為最終資料進行了傳送。這就導致這個明細回傳錯誤。查出問題後,我就想,將這個物件如果賦值乙份的吧。應該就沒問題了。這裡,一定要實現深複製,不然只進行淺...