前言
在日常開發中,我們常常需要將一個物件對映到另一個物件,這個過程中可能需要編寫大量的重複性程式碼,如果每次都手動編寫,不僅會影響開發效率,而且當專案越來越複雜,龐大的時候還容易出現錯誤。為了解決這個問題,物件對映庫就隨之而出了,這些庫可以自動完成物件之間的對映,從而減少了開發工作量,提高了開發效率。
使用物件對映庫有哪些好處?
- 減少開發工作量,提高開發效率。
- 減少開發過程中的錯誤和bug。
- 簡化程式碼結構,提高程式碼可讀性和可維護性。
AutoMapper物件對映庫介紹
AutoMapper是一個流行的.NET物件對映庫,它可以自動進行物件之間的轉換和對映,極大地簡化了開發人員在處理物件對映時的工作量。透過配置對映規則,開發人員可以快速定義物件之間的對映關係,從而避免了手動編寫大量的對映程式碼。這樣可以提高開發效率,減少出錯的可能性,並使程式碼更加可維護和易讀。
建立一個控制檯應用
本文示例是以控制檯為例子,建立一個名為AutoMapperTest
的控制檯:
AutoMapper包安裝
管理NuGet程式包
搜尋:AutoMapper
安裝:
建立源物件和目標物件
接下來我們分別定義一個源物件和一個目標物件,它們擁有相同的屬性。例如,我建立一個名為PersonInfo的源物件和一個名為PersonInfoDto的目標物件:
PersonInfo的源物件
public class PersonInfo
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Nationality { get; set; }
}
PersonInfoDto的目標物件
public class PersonInfoDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Nationality { get; set; }
}
配置AutoMapper對映規則
我們可以定義一個MappingProfile
的對映配置檔案,並在其中定義源型別和目標型別之間的對映關係。
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<PersonInfo, PersonInfoDto>();
}
}
控制檯執行物件對映
var configuration = new MapperConfiguration(cfg => {
cfg.AddProfile<MappingProfile>();
//或者下面這種方式
//cfg.CreateMap<PersonInfo, PersonInfoDto>();
});
var mapper = configuration.CreateMapper();
var personInfo = new PersonInfo
{
FirstName = "大東",
LastName = "陳",
Age = 18,
Nationality = "中國"
};
var personInfoDto = mapper.Map<PersonInfoDto>(personInfo);
專案原始碼地址
更多專案實用功能和特性歡迎前往專案開源地址檢視👀,別忘了給專案一個Star支援💖。
優秀專案和框架精選
該專案已收錄到C#/.NET/.NET Core優秀專案和框架精選中,關注優秀專案和框架精選能讓你及時瞭解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踴躍提交PR推薦或自薦(讓優秀的專案和框架不被埋沒🤞
)。
https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
DotNetGuide技術社群交流群
- DotNetGuide技術社群是一個面向.NET開發者的開源技術社群,旨在為開發者們提供全面的C#/.NET/.NET Core相關學習資料、技術分享和諮詢、專案推薦、招聘資訊和解決問題的平臺。
- 在這個社群中,開發者們可以分享自己的技術文章、專案經驗、遇到的疑難技術問題以及解決方案,並且還有機會結識志同道合的開發者。
- 我們致力於構建一個積極向上、和諧友善的.NET技術交流平臺,為廣大.NET開發者帶來更多的價值和成長機會。