AutoMapper在ABP框架中的使用说明
為了說明AutoMapper如何使用,我專門開設了一個專題來講,如果您還沒有查看該專題,請點擊這里。既然系統地學習了AutoMapper,那么接下來就是該用它實戰的時候了。今天,我們就來揭開AutoMapper如何在ABP框架中使用的面紗。
因為這里演示的是用ABP框架搭建的項目,本博客的講解的前提是假設你有了ABP基礎,所以,如果您還不了解ABP框架,請查看我的ABP框架的系列博客,請點擊這里。
下面正式開始今天的講解。
首先,讓我們稍微回憶一下AutoMapper的知識點。
問:什么是AutoMapper?
答:AutoMapper翻譯過來就是“自動映射工具”。它的作用就是將一個源類型映射成一個目標類型,比如Person——>PersonDto,User——>UserDto。
問:什么情況下使用AutoMapper?
答:一般在項目的開發中,經常需要將Entity實體映射成ModelDto或者ViewModel,這個時候,使用AutoMapper僅需要簡單的配置,就可以實現這些需求,非常方便。
接下來,講一下項目中的具體配置。
在我的ABP項目中,首先核心層有一個實體類TerminalDevices,類定義如下:
?View Code可以看到,僅一個實體類,就要將近300行的代碼,但是在服務層或者展現層使用的時候,有些屬性是不需要的,所以這時我們就要定義我們的Dto類了。
隨后,我在ABP項目中的服務層定義了一個對應的TerminalDeviceDto類,定義如下:
?View Code當然,這里的Dto類定義的屬性跟你的具體業務相關,定義的屬性還可能更少。
上面講的是源類型和目標類型的定義,下面開始講它們之間的映射配置。
首先,我在應用服務層新建一個文件夾取名“AutoMapper”,里面放跟AutoMapper配置相關的東西。
如圖,新建一個類TerminalDeviceProfile(CityProfile類是我的另一個實體類對應的AutoMapper配置文件),定義如下:
namespace Noah.ChargeStation.Application.AutoMapper {public class CityProfile:Profile{protected override void Configure(){Mapper.Initialize(cfg =>{cfg.CreateMap<Cities, CityDto>();});}} }如果您對這么配置不清楚原因,請查看我的AutoMapper系列教程,點擊查看。
再創建一個AutoMapperWebConfig靜態類,定義如下:
namespace Noah.ChargeStation.Application.AutoMapper {public static class AutoMapperWebConfig{public static void Configure(){Mapper.Initialize(cfg =>{cfg.AddProfile<CityProfile>();cfg.AddProfile<TerminalDeviceProfile>();});Mapper.AssertConfigurationIsValid();//驗證所有的映射配置是否都正常 }} }接下來,在應用服務層的模塊類中調用該靜態類的靜態方法,加載所有的AutoMapper配置信息。
namespace Noah.ChargeStation.Application {[DependsOn(typeof(ChargeStationCoreModule), typeof(AbpAutoMapperModule))]public class ChargeStationApplicationModule : AbpModule{public override void Initialize(){IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());AutoMapperWebConfig.Configure();//一次性加載所有映射配置 }} }這里需要注意的是,AutoMapper的配置一般放在項目啟動的時候進行加載且只加載一次就夠了,而在ABP框架搭建的項目中,除了展現層(Web和WebAPI層),其他層都會有一個Module類(類名以Module結尾)。這些類都重寫了父類AbpModule的Initialize方法,旨在模塊初始化的時候調用,這樣,映射的配置也在模塊初始化的時候完成了。如果在一般的ASP.Net項目中,應該在全局配置文件Global.asax中的Application_Start方法中調用AutoMapper的配置方法,其他項目類似。
以后,想要添加配置信息時,只需要定義相應的XXProfile類,然后在AutoMapperWebConfig類中添加配置文件類就可以了。
本文轉自tkbSimplest博客園博客,原文鏈接:http://www.cnblogs.com/farb/p/4973910.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的AutoMapper在ABP框架中的使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java爬虫搜索原理实现
- 下一篇: 使用mount挂载一个windows的共