[非專業翻譯] Mapster - 對映器
阿新 • • 發佈:2021-06-23
[非專業翻譯] Mapster - 對映器
系列介紹
[非專業翻譯] 是對沒有中文文件進行翻譯的系列部落格,文章由機翻和譯者自己理解構成,和原文相比有所有不同,但意思基本一致。
因個人能力有限,如有謬誤之處還請指正,多多包涵。
正文
本文將說明 Mapster 中的 對映器
擴充套件方法
可以從任何地方呼叫 Adapt
方法。
var dest = src.Adapt<TSource, TDestination>();
或者直接
var dest = src.Adapt<TDestination>();
這兩個擴充套件方法做的都是同樣的事情。src.Adapt<TDestination>
src
轉換為 object 型別。因此,如果要轉換的是值型別,那麼請使用 src.Adapt<TSource, TDestination>
以避免不必要的裝箱/拆箱。
對映器例項 ( Mapper )
在一些情況下,需要將 對映器 或 工廠函式 傳遞到依賴注入容器中。Mapster 提供了 IMapper
和 Mapper
來滿足這個需求:
IMapper mapper = new Mapper();
並且使用 Map
函式來執行對映:
var result = mapper.Map<TDestination>(source);
構建器 ( Builder )
在大多數情況下,Adapt
方法就足夠了,但有時需要使用構建器來支援一些特殊的場景。
一個基本的例子 —— 傳遞執行時的值:
var dto = poco.BuildAdapter()
.AddParameters("user", this.User.Identity.Name)
.AdaptToType<SimpleDto>();
如果使用 IMapper
例項,你可以通過 From
建立構建器。
var dto = mapper.From(poco) .AddParameters("user", this.User.Identity.Name) .AdaptToType<SimpleDto>();
程式碼生成
請參閱 Mapster.Tool 來生成特定型別的對映配置,而不是使用預設的對映器。