[非專業翻譯] Mapster - 映射器


[非專業翻譯] 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 提供了 IMapperMapper 來滿足這個需求:

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 來生成特定類型的映射配置,而不是使用默認的映射器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM