/// <summary> /// 应用模块服务 /// </summary> /// <param name="provider">服务提供者</param> public override void UsePack(IServiceProvider provider) { MapperConfigurationExpression cfg = provider.GetService <MapperConfigurationExpression>(); //各个模块DTO的 IAutoMapperConfiguration 映射实现类 IAutoMapperConfiguration[] configs = provider.GetServices <IAutoMapperConfiguration>().ToArray(); foreach (IAutoMapperConfiguration config in configs) { config.CreateMaps(cfg); } //获取已注册到IoC的所有Profile IMapTuple[] tuples = provider.GetServices <IMapTuple>().ToArray(); foreach (IMapTuple mapTuple in tuples) { mapTuple.CreateMap(); cfg.AddProfile(mapTuple as Profile); } Mapper.Initialize(cfg); IMapper mapper = provider.GetService <IMapper>(); MapperExtensions.SetMapper(mapper); IsEnabled = true; }
/// <summary> /// 启用AutoMapper /// </summary> public static IApplicationBuilder UseAutoMapper(this IApplicationBuilder app, Action <IMapperConfigurationExpression> additionalInitAction = null) { MapperConfigurationExpression cfg = new MapperConfigurationExpression(); if (additionalInitAction != null) { additionalInitAction(cfg); } //获取已注册到IoC的所有Profile IMapTuple[] tuples = app.ApplicationServices.GetServices <IMapTuple>().ToArray(); foreach (IMapTuple mapTuple in tuples) { mapTuple.CreateMap(); cfg.AddProfile(mapTuple as Profile); } Mapper.Initialize(cfg); IMapper mapper = app.ApplicationServices.GetService <IMapper>(); MapperExtensions.SetMapper(mapper); return(app); }
/// <summary> /// 使用模块服务 /// </summary> /// <param name="provider"></param> public override void UseModule(IServiceProvider provider) { MapperConfigurationExpression cfg = provider.GetService <MapperConfigurationExpression>() ?? new MapperConfigurationExpression(); //获取已注册到IoC的所有Profile IMapTuple[] tuples = provider.GetServices <IMapTuple>().ToArray(); foreach (IMapTuple mapTuple in tuples) { mapTuple.CreateMap(); cfg.AddProfile(mapTuple as Profile); } Mapper.Initialize(cfg); IMapper mapper = provider.GetService <IMapper>(); MapperExtensions.SetMapper(mapper); IsEnabled = true; }