automapper 10 +autofac+asp.net web api
automapper 不必多說 https://automapper.org
autofac 這里也不多說 https://autofac.org
這里主要 說 automapper 10.0 版本+autofac 在asp.net web api 的簡單使用,因?yàn)閍utomapper 更新很快每個版本的差別很大 ,網(wǎng)上查找的資料也比較雜而亂,找了好半天也找不出個好的
也沒寫過啥博文直接上干貨
1.vs nuget 中搜索 automapper 安裝

2.在項(xiàng)目中添加 此類 記得集成 Profile
public class MappingProfile : Profile { public MappingProfile() {//此處是類與類的映射.... 這里就簡單的舉例一個
CreateMap<Core.Model.PO.admin, Models.Default.Admin>();
}
}
3.在autofac 中 注冊 automapper
public static void Register() { //得到你的HttpConfiguration. var configuration = GlobalConfiguration.Configuration; var builder = new ContainerBuilder(); //注冊所有api控制器 構(gòu)造函數(shù)注入 builder.RegisterApiControllers(Assembly.GetCallingAssembly()); // 注冊auto mapper var mapperConfiguration = new MapperConfiguration(cfg => { cfg.AddProfile<MappingProfile>();//添加MappingProfile 實(shí)現(xiàn)映射的類 }); IMapper mapper = mapperConfiguration.CreateMapper(); builder.RegisterInstance(mapper).As<IMapper>().SingleInstance(); ...... 此處省去代碼 100行 }
4.在控制器構(gòu)造函數(shù)中 使用 IMapper
public class DefaultController : ApiController { private readonly IMapper _mapper; private readonly IAdminService _adminService; public DefaultController(IMapper mapper, IAdminService adminService) { _mapper = mapper; _adminService = adminService; } [HttpGet,Filter.CustomActionFilter] public IHttpActionResult user() { List<Core.Model.PO.admin> list = _adminService.GetList(); var customers = _mapper.Map<List<Admin>>(list); return Ok(new {code=0 ,data=customers }); } }

浙公網(wǎng)安備 33010602011771號