反射拷貝乙份新的實體類

2021-06-20 10:30:55 字數 809 閱讀 5735

最近開發中遇到的問題:

我有exportlibrarylist表,裡面資料有100多個字段,現在是要做乙個步驟是,新例項化乙個exportlibrarylist物件,只要改變裡面2個字段屬性

我開始這樣做的【錯誤方式】

exportlibrarylist sl = exportlibrarylistdata.find(delegate(exportlibrarylist obj) );

監聽:sl.recordstate=2;

exportlibrarylist shadow = new exportlibrarylist();

shadow=sl

shadow.recordstate=3

做到這一步的時候,我發現sl.recordstate=3了,我很詫異。不明白,於是我就問其他it朋友,幾個沒有解決,但是其他有乙個覺得跟指標有啥關係吧!於是我明白了

修改版本【正確方式】

exportlibrarylist sl = exportlibrarylistdata.find(delegate(exportlibrarylist obj) );

exportlibrarylist shadow = new exportlibrarylist();

system.reflection.propertyinfo info = sl.gettype().getproperties();

foreach (system.reflection.propertyinfo property in info)

這樣做不管你修改shadow都不會改變sl。

但是我還是不知道啥原因,暫且先記錄吧

實體類的動態生成(一)

在應用開發中,通常都會涉及各種 pojo poco 實體類 do,dto,bo,vo 的編寫,有時這些實體類還需要實現inotifypropertychanged介面以支援屬性變更通知,一般我們都會手寫這些 或者通過工具根據資料庫表定義抑或別的什麼模板 對映檔案之類的來生成它們。但是,在業務實現中往...

XML帶多屬性解析為乙個實體類(利用反射)

最近在對接乙個銀行的專案,大概就是類似乙個錢包的功能,在請求返回的資料時,發現返回的資料標準的xml格式的支付串,格式如下 用常規的xml解析解析出來的資料是乙個list,不能達到預期的目的,於是想到使用反射來解決這個問題。如下 支付結果解析 public static t xmlparsing t...

使用NBear設計乙個新的實體類時需要進行的操作

當我們使用nbear設計乙個新的實體類時,我們需要進行以下的操作 1 在實際開發專案之外,建立乙個新的實體設計專案 該專案只在設計時有用 2 新建乙個實體類進行設計。3 新增對nbear的引用。4 新增對實際專案的引用。5 設計實體元資料。6 編譯。7 通過nbear.tools.entitydes...