1. 程式人生 > 其它 >automapper 10 +autofac+asp.net web api

automapper 10 +autofac+asp.net web api

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 });
        }
    }