publicclass
person
public
string age
}public
class
persondto
public
string age
}
按照官方使用方式,我們需要以下幾個步驟
//配置對映
o.createmap
(); o.createmap
(); });
var p = new person ;
//進行轉換
當然,上面的使用方式沒有什麼問題,似乎也很簡單。但是對於乙個專案來說幾十成百的表已經是家常便飯,對於種配置方式會不會很蛋疼呢。想象一些一堆的createmap就會讓人噁心,我也看到現在有一些解決方案,即對對映進行粒化每乙個相關的功能或實體建立profile類,新增到profile集合中。在程式執行時統一註冊。這樣也不錯,但是還是會去寫一堆的profile類和createmap。
在abp中看到了使用特性的方式進行配置對映,簡單的一行**就可以解決問題,但是似乎在沒有使用abp的專案裡並不是那麼使用這種方式,所以我就借鑑了這種方法寫了乙個屬於自己的特性
[automapfrom(typeof(person))]
首先是建立乙個類去繼承自attribute,這是很簡單的。在實際專案中不一定都是乙個實體對應乙個dto的情況,還會有乙個實體對應多個dto的情況存在,所以tosource應該是乙個陣列
publicclass
automapattribute : attribute
public automapattribute(params
type tosource)
}
後面的**就更為簡單了,我們拿到dto的程式集,(視專案程式集名而定) ,然後拿到所有的自定義型別判斷其中的type是否有貼上了automapattribute類,如果有的話,建立它的例項,拿到source,然後進行建立對映。很簡單對吧。
publicclass
}});
}}
最後我們需要在程式啟動時去載入這些配置,一切就大功告成了。
protectedvoid
我想要的是方式是在物件上直接點出map並且使用泛型選擇我要轉換後的型別,這時候已經想到可以用擴充套件方法了,是不是很方便呢
publicstatic
class
automapextension
public
static tdestination mapto(this
tsource source, tdestination destination)
}
staticvoid main(string
args)
);var p = new person ;
//進行轉換
p.mapto();
}
自己動手 讓Editplus更好用
用過editplus的同學基本都會對它的輕巧與強大讚不絕口。我這樣用了3年以上的,早已是離不開它了。無論是在幾萬行文字裡執行複雜正則替換 還是一次開啟幾百個文字修改編碼 或者在結構層次很複雜的目錄中批量查詢,它都能輕鬆勝任。但是這麼好用的軟體有乙個我無法忍受的缺陷 自帶的資源管理器非常難用,分開顯示...
C 的庫應該更好用
不要重複造輪子!一遍一遍我們說著這樣的話。可是為什麼c c 的api那麼難用 尤其windows下的 每次我們都把時間浪費在了實現簡單邏輯而不是實現領域模型上了,其實,我們根本沒有足夠好的輪子。拋磚引玉,乙個在windows下檔案及資料夾操作的封裝。c 沒有理由不能像python一樣易用,至少某些庫...
比Xshel更好用的 FinalShell
1.多平台支援windows,mac os x,linux 2.多標籤,批量伺服器管理.3.支援登入ssh和windows遠端桌面.4.漂亮的平滑字型顯示,內建100多個配色方案.5.shell,sftp同屏顯示,同步切換目錄.6.命令自動提示,智慧型匹配,輸入更快捷,方便.7.sftp支援,通過各...