automapper 10 +autofac+asp.net web api
阿新 • • 發佈:2021-07-09
automapper 不必多說 https://automapper.org
autofac 這裡也不多說 https://autofac.org
這裡主要 說 automapper 10.0 版本+autofac 在asp.net web api 的簡單使用,因為automapper 更新很快每個版本的差別很大 ,網上查詢的資料也比較雜而亂,找了好半天也找不出個好的
也沒寫過啥博文直接上乾貨
1.vs nuget 中搜索 automapper 安裝
2.在專案中新增 此類 記得整合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控制器 建構函式注入 builder.RegisterApiControllers(Assembly.GetCallingAssembly()); // 註冊auto mapper var mapperConfiguration = new MapperConfiguration(cfg => { cfg.AddProfile<MappingProfile>();//新增MappingProfile 實現對映的類 }); IMapper mapper = mapperConfiguration.CreateMapper(); builder.RegisterInstance(mapper).As<IMapper>().SingleInstance(); ...... 此處省去程式碼 100行 }
4.在控制器建構函式中 使用 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 }); } }