1、安裝automapper nuget包。
2、新建一個AutoMapper配置類並實現一個靜態配置方法。
方法一、
using AutoMapper; using AutoMapperTest.Models; namespace AutoMapperTest.App_Start { public class AutoMapperConfig { public static void Config() { Mapper.Initialize(cfg => { cfg.CreateMap<StudentEntity, StudentOutput>(); }); } } }
方法二、AddProfile方式
using AutoMapper; using AutoMapperTest.Models; namespace AutoMapperTest.App_Start { public class AutoMapperConfig { public static void Config() { Mapper.Initialize(cfg => { cfg.AddProfile<MapperProfile>(); }); } } }
using AutoMapper; using AutoMapperTest.Models; namespace AutoMapperTest.App_Start { public class MapperProfile : Profile { public MapperProfile() { CreateMap<StudentEntity, StudentOutput>(); } } }
3、在全域性配置Global.asax中引用配置方法。
using AutoMapperTest.App_Start; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace AutoMapperTest { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AutoMapperConfig.Config(); } } }
4、具體使用
public JsonResult GetMapper() { //例項化實體List List<StudentEntity> StudentList = new List<StudentEntity>(); //模擬資料 StudentList.Add(new StudentEntity { Id = 1, Age = 12, Gander = "boy", Name = "WangZeLing", Say = "Only the paranoid survive", Score = 99M }); //AuotMapper具體使用方法 將List<StudentOutput>轉換為List<StudentOutput> List<StudentOutput> Output = AutoMapper.Mapper.Map<List<StudentOutput>>(StudentList); return Json(Output, JsonRequestBehavior.AllowGet); }
附:實體類、Output類
public class StudentEntity { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Gander { get; set; } public decimal Score { get; set; } public string Say { get; set; } }
public class StudentOutput { public string Name { get; set; } public decimal Score { get; set; } public string Say { get; set; } }
附:AutoMapper GitHub
https://github.com/AutoMapper/AutoMapper