安裝與第一個範例

1. NuGet安裝步驟

  1. 建立控制台專案(其他專案類型也可使用,控制台僅作示範)
  2. 在NuGet套件管理器搜尋AutoMapper(作者Jimmy Bogard)
  3. 點擊安裝;要符合專案.NET框架版本選擇對應套件版本,版本不匹配會安裝失敗

NuGet套件管理器主控台指令

Install-Package AutoMapper

2. 建立實體類

class Person
{
    public int Age { set; get; }
    public string Name { set; get; }
    public decimal Salary { set; get; }
    public bool Sex { set; get; }
    public DateTime Birthday { set; get; }
}

class People
{
    public int Age { set; get; }
    public string Name { set; get; }
    public decimal Salary { set; get; }
    public bool Sex { set; get; }
    public DateTime Birthday { set; get; }
}Code language: JavaScript (javascript)

3. 範例

class Program
{
    static void Main(string[] args)
    {
        // ① 初始化映射設定:建立 Person → People 的映射關係
        Mapper.Initialize(m => m.CreateMap<Person, People>());

        // ② 實例化來源物件Person
        Person p = new Person()
        {
            Age = 12,
            Name = "Tom",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 10000
        };

        // 目標物件不能為null,需要先實例化
        People peo = new People();

        // ③ 執行映射,將來源物件p的值複製到peo
        Mapper.Map(p, peo);

        // ④ 讀取映射後的結果
        Console.WriteLine(peo.Name);
        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

關鍵要點

  1. Mapper.Initialize:全域進行映射規則註冊,程式啟動執行一次即可,不要反覆寫在迴圈裡面。
  2. CreateMap<來源類型,目標類型>():宣告兩個類別之間的映射。
  3. Mapper.Map(來源物件, 目標物件):目標物件必須已經實例化,不能傳null,否則會報錯。
  4. 約定規則:屬性名稱、類型一致,就會自動複製,不需要額外設定。

版本提醒:AutoMapper 10+不再建議使用靜態Mapper.Initialize / Mapper.Map,改用DI注入IMapper;上面的程式碼只適合舊版本學習。

與手動賦值比較

  • 手動:peo.Name = p.Name; peo.Age = p.Age; ……,欄位越多,样板程式碼越多。
  • AutoMapper:只需要宣告映射關係,自動複製全部同名屬性。

安裝與第一個範例

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *