/// <summary>
 /// This creates an IEnumerable type mapping for the TS & TT types if neither are already IEnumerable
 /// </summary>
 /// <typeparam name="TS"></typeparam>
 /// <typeparam name="TT"></typeparam>
 /// <param name="engine"></param>
 private static void CreateEnumerableMap <TS, TT>(this AbstractFluentMappingEngine engine)
 {
     //if niether are enumerable, we can create an Enumerable type map for them with the EnumerableTypeMapper
     if (!typeof(TS).IsEnumerable() && !typeof(TT).IsEnumerable())
     {
         var metadata = new TypeMapperMetadata(typeof(IEnumerable <TS>), typeof(IEnumerable <TT>), false);
         var mapper   = new EnumerableTypeMapper <IEnumerable <TS>, IEnumerable <TT> >(engine);
         engine.CreateMap(mapper, metadata);
     }
 }
        /// <summary>
        /// Creates a new mapper with the specified mapper and default metadata with the permitInheritance flag
        /// </summary>
        /// <typeparam name="TS"></typeparam>
        /// <typeparam name="TT"></typeparam>
        /// <param name="engine"></param>
        /// <param name="mapper"></param>
        /// <param name="permitInheritance"></param>
        /// <returns></returns>
        public static IMappingExpression <TS, TT> CreateMap <TS, TT>(this AbstractFluentMappingEngine engine, ITypeMapper <TS, TT> mapper, bool permitInheritance)
        {
            var metadata = new TypeMapperMetadata(typeof(TS), typeof(TT), permitInheritance);

            engine.AddMap(mapper, metadata);

            //create enumerable type map for the types automatically if they aren't already IEnumerable
            engine.CreateEnumerableMap <TS, TT>();

            var expression = new MappingExpression <TS, TT>(mapper.MappingContext);

            return(expression);
        }
示例#3
0
 public MapperDefinition(ITypeMapper mapper, TypeMapperMetadata metadata)
 {
     Mapper = mapper;
     Metadata = metadata;
 }
 /// <summary>
 /// Creates a new map with the specified metadata and default mapper
 /// </summary>
 /// <typeparam name="TS"></typeparam>
 /// <typeparam name="TT"></typeparam>
 /// <param name="engine"></param>
 /// <param name="metadata"></param>
 /// <returns></returns>
 public static IMappingExpression <TS, TT> CreateMap <TS, TT>(this AbstractFluentMappingEngine engine, TypeMapperMetadata metadata)
 {
     //first we need to check if it's enumerable, if so we need to create an Enumerable injector mapper
     if (typeof(TS).IsEnumerable() && typeof(TT).IsEnumerable())
     {
         var mapper = new EnumerableTypeMapper <TS, TT>(engine);
         return(engine.CreateMap(mapper, metadata));
     }
     else
     {
         var mapper = new TypeMapper <TS, TT>(engine);
         return(engine.CreateMap(mapper, metadata));
     }
 }
        /// <summary>
        /// Creates a map with the specified mapper & metadata
        /// </summary>
        /// <typeparam name="TS"></typeparam>
        /// <typeparam name="TT"></typeparam>
        /// <param name="engine"></param>
        /// <param name="mapper"></param>
        /// <param name="metadata"></param>
        /// <returns></returns>
        public static IMappingExpression <TS, TT> CreateMap <TS, TT>(this AbstractFluentMappingEngine engine, ITypeMapper <TS, TT> mapper, TypeMapperMetadata metadata)
        {
            engine.AddMap(mapper, metadata);

            //create enumerable type map for the types automatically if they aren't already IEnumerable
            engine.CreateEnumerableMap <TS, TT>();

            var expression = new MappingExpression <TS, TT>(mapper.MappingContext);

            return(expression);
        }
 public MapperDefinition(ITypeMapper mapper, TypeMapperMetadata metadata)
 {
     Mapper   = mapper;
     Metadata = metadata;
 }