国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

AutoMapper Getting started

2019-11-17 02:21:05
字體:
來源:轉載
供稿:網友

AutoMapper Getting started

  1. AutoMapper 是什么?
  2. 為什么要用AutoMapper?
  3. 如何使用AutoMapper?
  4. 在什么地方配置AutoMapper?
  5. 如何測試my mappings?

AutoMapper 是什么?


AutoMapper是一個對象到對象的映射關系,對象到對象的映射是通過轉化一個類型對象輸入到一個不同的類型對象輸出來工作的,使得AutoMapper讓人感興趣的一點就是他提供了一些比較有趣的規則把繁重的工作從類型對象轉換算法中剔除掉,

只要類型對象遵循了AutoMapper建立的規則,基本上不需要額外的配置去做類型對象之間的轉化。

為什么要用AutoMapper?


類型轉換代碼是令人討厭的,測試類型轉換代碼更加的令人討厭,AutoMapper提供了非常簡單的配置機制,類型轉換測試也變得同樣簡單,現在真正剩下的需要關心的問題是why use object-object mapping?,

類型轉化會發生在項目中很多地方,但是大部分發生在層與層之間的邊界,例如UI/Domain 之間,或者Service/Domain 之間,通常來說一層關心的東西和另外一層關心的東西是不一致的,

所以對象到對象的映射產生了一個隔離的模型,這樣每一層的對象的變化更加獨立,僅僅會影響對象所在的層,對其他的層不會產生影響

如何使用AutoMapper?


首先,你需要Source類型和目標類型,這個目標類型在設計之初就會受到其所在層的影響,但是AutoMappers依然可以工作的很好,只要目標對象成員名稱和源對象成員名稱匹配,例如你有一個源對象屬性叫FirstName,

那么他將會自動映射到目標對象成員名稱叫FirstName的屬性,AutoMapper也支持Flattening。

當映射源類型到目標類型時,AutoMapper會忽略空引用異常,這是默認的設計,如果你不喜歡這種設計,你可以結合AutoMapper Custom-value-resolver,如果需要的話。

一旦你有了兩個類型,而且引用了AutoMapper,你就可以給這兩個類型添加映射,

Mapper.CreateMap<Order, OrderDto>();

左邊的類型是源類型,右邊的類型是目標類型,用下面的方法去執行一個映射

OrderDto dto = Mapper.Map<OrderDto>(order);

AutoMapper也有非泛型的方法。

在什么地方配置AutoMapper?


如果你使用靜態的映射方法,配置時只需要在appDomain中配置一次,這意味著你最好的選擇就是把配置代碼方法在程序啟動項中,例如Global.asax。需要說明的是,在bootstrapper(啟動加載器)內配置自己,

這個bootstrapper也被稱作為啟動方法。

如何測試my mappings?


創建一個映射測試,你要做兩件事

  1. 調用啟動項中創建映射的方法
  2. 調用Mapper.AssertConfigurationIsValid方法

就像下面這個例子一樣:

AutoMapperConfiguration.Configure();Mapper.AssertConfigurationIsValid();

https://github.com/AutoMapper/AutoMapper/wiki/Getting-started


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 株洲市| 开封市| 新晃| 台北县| 奉新县| 贵溪市| 阳山县| 延川县| 正蓝旗| 大余县| 和田市| 偏关县| 同心县| 游戏| 井陉县| 宕昌县| 安远县| 天等县| 乐平市| 府谷县| 罗源县| 鹤庆县| 双柏县| 乌拉特中旗| 灵璧县| 惠水县| 易门县| 宜黄县| 深州市| 营口市| 新巴尔虎右旗| 利辛县| 庆城县| 合阳县| 台前县| 平定县| 凌源市| 龙胜| 青铜峡市| 德令哈市| 共和县|