Beispiel #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            // Use an in-memory database for quick development and testing
            services.AddDbContext <BeautifulContext>(opt => opt.UseInMemoryDatabase());

            // Save the default paged collection parameters to the DI container
            // so we can easily retrieve them in a controller
            services.AddSingleton(Options.Create(new PagedCollectionParameters
            {
                Limit  = 25,
                Offset = 0
            }));

            services.AddMvc(options =>
            {
                options.Filters.Add(typeof(LinkRewritingFilter));
                options.Filters.Add(typeof(JsonExceptionFilter));
            });

            // Add POCO mapping configurations
            var typeAdapterConfig = new TypeAdapterConfig();

            typeAdapterConfig.Scan(typeof(Startup).GetTypeInfo().Assembly);
            services.AddSingleton(typeAdapterConfig);
        }
        public static IApplicationBuilder UseMapster(this IApplicationBuilder app)
        {
            var config = new TypeAdapterConfig();

            config.Scan(Assembly.GetAssembly(typeof(Startup)));

            return(app);
        }
        /// <summary>
        /// 指定映射配置 - 扫描程序集注册的对象映射
        /// </summary>
        /// <param name="typeAdapterConfig"></param>
        /// <param name="assemblies"></param>
        public static void RegisterObjectMapper([NotNull] this TypeAdapterConfig typeAdapterConfig, params Assembly[] assemblies)
        {
            Check.NotNull(typeAdapterConfig, nameof(typeAdapterConfig));

            if (assemblies == null || assemblies.Length == 0)
            {
                return;
            }

            typeAdapterConfig.Scan(assemblies);
        }
 public static IServiceCollection AddMapper(this IServiceCollection services)
 {
     services.AddScoped <IMapper, Mapper>(provider =>
     {
         var config = new TypeAdapterConfig();
         config.Scan(
             typeof(Startup).Assembly, typeof(IScopedService).Assembly,
             typeof(Domain.Domain).Assembly, typeof(BaseRepository <>).Assembly);
         return(new Mapper(config));
     });
     return(services);
 }
        public void Registers_Are_Found()
        {
            var config = new TypeAdapterConfig();
            IList <IRegister> registers = config.Scan(Assembly.GetExecutingAssembly());

            registers.Count.ShouldBe(2);

            var typeTuples = config.RuleMap.Keys.ToList();

            typeTuples.Any(x => x.Equals(new TypeTuple(typeof(Customer), typeof(CustomerDTO)))).ShouldBeTrue();
            typeTuples.Any(x => x.Equals(new TypeTuple(typeof(Product), typeof(ProductDTO)))).ShouldBeTrue();
            typeTuples.Any(x => x.Equals(new TypeTuple(typeof(Person), typeof(PersonDTO)))).ShouldBeTrue();

            typeTuples.Any(x => x.Equals(new TypeTuple(typeof(PersonDTO), typeof(Person)))).ShouldBeFalse();
        }
        public static void AddMapping(this IServiceCollection services, params Assembly[] assemblies)
        {
            var config = new TypeAdapterConfig();

            if (assemblies.Length > 0)
            {
                config.Scan(assemblies);
            }

            services.AddSingleton(config);

            services.AddScoped <global::MapsterMapper.IMapper, ServiceMapper>();

            services.AddScoped <IProjector, MapsterProjector>();

            services.AddScoped <IMapper, MapsterMapper>();
        }
Beispiel #7
0
        /// <summary>
        /// Creates a new instance of a TestHelper class.
        /// </summary>
        public TestHelper()
        {
            var config     = new TypeAdapterConfig();
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.StartsWith("Pims"));

            assemblies.ForEach(a => config.Scan(a));

            config.Default.IgnoreNonMapped(true);
            config.Default.IgnoreNullValues(true);
            config.AllowImplicitDestinationInheritance = true;
            config.AllowImplicitSourceInheritance      = true;
            config.Default.UseDestinationValue(member =>
                                               member.SetterModifier == AccessModifier.None &&
                                               member.Type.IsGenericType &&
                                               member.Type.GetGenericTypeDefinition() == typeof(ICollection <>));

            _services.AddSingleton <IntIdentityGenerator>();
            _services.AddSingleton(config);
            _services.AddSingleton <IMapper, ServiceMapper>();
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            var simpleInfo = new SimpleInfo()
            {
                Id   = 1,
                Name = "test"
            };

            var simpleBiz = simpleInfo.Adapt <Simple>();
            //Simple simpleBiz = new Simple();
            //simpleInfo.Adapt(simpleBiz);

            var config     = new TypeAdapterConfig();
            var assemblies = GetAssemblies();

            //映射规则
            config.Scan(assemblies);

            var mapper = new Mapper(config); //务必将mapper设为单实例, 保存到IOC容器中



            var simple = mapper.Map <Simple>(simpleInfo);
            var view   = mapper.Map <SimpleView>(simple);



            var info = new UserInfo()
            {
                Age  = 8,
                like = "fasf",
                Name = "Nestor",
                Sex  = "Male"
            };

            var dto      = mapper.Map <User>(info);
            var userView = mapper.Map <UserView>(dto);
        }