示例#1
0
        public MappingStrategy(Type source, Type target, IMappingDescriptor descriptor)
        {
            Descriptor = descriptor;
            Source = source;
            Target = target;

            ContextExpression = Expression.Parameter(typeof (MappingContext), "context");
            SourceExpression = Expression.Variable(Source, "source");
            TargetExpression = Expression.Variable(Target, "target");
            MapperExpression = Expression.Property(ContextExpression, MappingContextMeta.Mapper);
        }
        public MappingStrategy(MappingInfo mappingInfo, IMappingDescriptor descriptor)
        {
            Descriptor = descriptor;
            Source = mappingInfo.MappingSourceType;
            Target = mappingInfo.MappingTargetType;
            HasTargetInstance = mappingInfo.MapIntoExistingTargetInstance;
            try
            {
                TargetConstructor = Target.GetConstructors().Single();
                ConstructorParameterMappingSteps = new OrderedKeyedCollection<ParameterInfo, MappingStep>(TargetConstructor.GetParameters());
            }
            catch (InvalidOperationException)
            {
                throw new ArgumentException("Target type must have single public constructor. This is the only scenario supported at the moment.", "target");
            }

            ContextExpression = Expression.Parameter(typeof (MappingContext), "context");
            SourceExpression = Expression.Variable(Source, "source");
            TargetExpression = Expression.Variable(Target, "target");
            MapperExpression = Expression.Property(ContextExpression, MappingContextMeta.Mapper);
        }
示例#3
0
        public MappingStrategy(MappingInfo mappingInfo, IMappingDescriptor descriptor)
        {
            Descriptor        = descriptor;
            Source            = mappingInfo.MappingSourceType;
            Target            = mappingInfo.MappingTargetType;
            HasTargetInstance = mappingInfo.MapIntoExistingTargetInstance;
            try
            {
                TargetConstructor = Target.GetConstructors().Single();
                ConstructorParameterMappingSteps = new OrderedKeyedCollection <ParameterInfo, MappingStep>(TargetConstructor.GetParameters());
            }
            catch (InvalidOperationException)
            {
                throw new ArgumentException("Target type must have single public constructor. This is the only scenario supported at the moment.", "target");
            }

            ContextExpression = Expression.Parameter(typeof(MappingContext), "context");
            SourceExpression  = Expression.Variable(Source, "source");
            TargetExpression  = Expression.Variable(Target, "target");
            MapperExpression  = Expression.Property(ContextExpression, MappingContextMeta.Mapper);
        }
 public MappingStrategyBuilder(IMappingDescriptor descriptor, IConversionPatternRepository conversionPatternRepository, params IMappingPattern[] mappingPatterns)
 {
     this.descriptor = descriptor;
     this.conversionPatternRepository = conversionPatternRepository;
     this.mappingPatterns = mappingPatterns;
 }
 public MappingStrategyBuilder(IMappingDescriptor descriptor, IConversionPatternRepository conversionPatternRepository, params IMappingPattern[] mappingPatterns)
 {
     this.descriptor = descriptor;
     this.conversionPatternRepository = conversionPatternRepository;
     this.mappingPatterns             = mappingPatterns;
 }
 public DescriptorContributor(IMappingDescriptor descriptor)
 {
     this.descriptor = descriptor;
 }