AutoMapper的配置

1,安装AutoMapper 和 Autofac

命令:

Install-package AutoMapper

Install-package Autofac

 1 using Autofac;
 2 using AutoMapper;
 3 using AutoMapper.Configuration;
 4 using Morningstar.EquityFundamentals.Framework.Db.Chatbot;
 5 using Morningstar.EquityFundamentals.Model.Chatbot;
 6 
 7 namespace Morningstar.EquityFundamentals.Framework
 8 {
 9     public static class ContainerBuilderExtension
10     {
11         public static ContainerBuilder LoadAutoMapper(this ContainerBuilder builder)
12         {
13             builder.RegisterType<MapperConfigurationExpression>().SingleInstance();
14             builder.Register(m =>
15             {
16                 var mapperConfigurationExpression = m.Resolve<MapperConfigurationExpression>();
17                 var instance = new MapperConfiguration(mapperConfigurationExpression);
18                 return instance;
19             });
20             builder.Register(m =>
21             {
22                 var mapperConfiguration = m.Resolve<MapperConfiguration>();
23                 return mapperConfiguration.CreateMapper();
24             });
25             return builder;
26         }
27     }
28 
29     public class AutoMapperProfile : Profile
30     {
31         public void Mapping(ILifetimeScope scope)
32         {
33             var expression = scope.Resolve<MapperConfigurationExpression>();
34             expression.CreateMap<AppInfo, AppInfoDto>();
35         }
36     }
37 
38     public static class AutoMapperHelper
39     {
40         public static TDestination Map<TDestination>(object source)
41         {
42             ContainerBuilder builder = new ContainerBuilder();
43             builder.LoadAutoMapper();
44             builder.RegisterType<AutoMapperProfile>();
45             IContainer Container = builder.Build();
46 
47             using var scope = Container.BeginLifetimeScope();
48             scope.Resolve<AutoMapperProfile>().Mapping(scope);
49             return scope.Resolve<IMapper>().Map<TDestination>(source);
50         }
51     }
52 }
AutoMapperHelper

 

2,使用

 

posted @ 2020-08-13 15:08  孝文  阅读(311)  评论(0编辑  收藏  举报