public CustomMapperImpl( EmitMapperManager mapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator, object[] storedObjects) { Initialize(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, storedObjects); }
internal void Initialize( EmitMapperManager MapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator, object[] stroredObjects) { mapperMannager = MapperMannager; typeFrom = TypeFrom; typeTo = TypeTo; _mappingConfigurator = mappingConfigurator; StroredObjects = stroredObjects; if (_mappingConfigurator != null) { _rootOperation = _mappingConfigurator.GetRootMappingOperation(TypeFrom, TypeTo); if (_rootOperation == null) { _rootOperation = new RootMappingOperation(TypeFrom, TypeTo); } var constructor = _rootOperation.TargetConstructor; if (constructor != null) { _targetConstructor = (DelegateInvokerFunc_0)DelegateInvoker.GetDelegateInvoker(constructor); } var valuesPostProcessor = _rootOperation.ValuesPostProcessor; if (valuesPostProcessor != null) { _valuesPostProcessor = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(valuesPostProcessor); } var converter = _rootOperation.Converter; if (converter != null) { _converter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(converter); } var nullSubstitutor = _rootOperation.NullSubstitutor; if (nullSubstitutor != null) { _nullSubstitutor = (DelegateInvokerFunc_0)DelegateInvoker.GetDelegateInvoker(nullSubstitutor); } var sourceFilter = _rootOperation.SourceFilter; if (sourceFilter != null) { _sourceFilter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(sourceFilter); } var destinationFilter = _rootOperation.DestinationFilter; if (destinationFilter != null) { _destinationFilter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(destinationFilter); } } }
public MappingOperationsProcessor(MappingOperationsProcessor prototype) { locFrom = prototype.locFrom; locTo = prototype.locTo; locState = prototype.locState; locException = prototype.locException; compilationContext = prototype.compilationContext; operations = prototype.operations; storedObjects = prototype.storedObjects; mappingConfigurator = prototype.mappingConfigurator; objectsMapperManager = prototype.objectsMapperManager; rootOperation = prototype.rootOperation; staticConvertersManager = prototype.staticConvertersManager; }
public MappingOperationsProcessor(MappingOperationsProcessor prototype) { locFrom = prototype.locFrom; locTo = prototype.locTo; locState = prototype.locState; locException = prototype.locException; compilationContext = prototype.compilationContext; operations = prototype.operations; storedObjects = prototype.storedObjects; mappingConfigurator = prototype.mappingConfigurator; objectsMapperManager = prototype.objectsMapperManager; rootOperation = prototype.rootOperation; staticConvertersManager = prototype.staticConvertersManager; }
public MappingBuilder( EmitMapperManager objectsMapperManager, Type from, Type to, TypeBuilder typeBuilder, IMappingConfigurator mappingConfigurator ) { this.objectsMapperManager = objectsMapperManager; this.from = from; this.to = to; this.typeBuilder = typeBuilder; this.storedObjects = new List<object>(); this.mappingConfigurator = mappingConfigurator; }
public MappingBuilder( EmitMapperManager objectsMapperManager, Type from, Type to, TypeBuilder typeBuilder, IMappingConfigurator mappingConfigurator ) { this.objectsMapperManager = objectsMapperManager; this.from = from; this.to = to; this.typeBuilder = typeBuilder; this.storedObjects = new List <object>(); this.mappingConfigurator = mappingConfigurator; }
public MapperPrimitiveImpl(EmitMapperManager mapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator) : base(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, null) { var to = TypeTo == typeof(IEnumerable) ? typeof(object) : TypeTo; var from = TypeFrom == typeof(IEnumerable) ? typeof(object) : TypeFrom; var staticConv = mappingConfigurator.GetStaticConvertersManager() ?? StaticConvertersManager.DefaultInstance; var converterMethod = staticConv.GetStaticConverter(from, to); if (converterMethod != null) { _converter = (MethodInvokerFunc_1)MethodInvoker.GetMethodInvoker( null, converterMethod ); } }
public MapperPrimitiveImpl(EmitMapperManager mapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator) : base(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, null) { var to = TypeTo == typeof(IEnumerable) ? typeof(object) : TypeTo; var from = TypeFrom == typeof(IEnumerable) ? typeof(object) : TypeFrom; var staticConv = mappingConfigurator.GetStaticConvertersManager() ?? StaticConvertersManager.DefaultInstance; var converterMethod = staticConv.GetStaticConverter(from, to); if (converterMethod != null) { _converter = (MethodInvokerFunc_1)MethodInvoker.GetMethodInvoker( null, converterMethod ); } }
/// <summary> /// Creates an instance of Mapper for collections. /// </summary> /// <param name="MapperName">Mapper name. It is used for registration in Mappers repositories.</param> /// <param name="mapperMannager">Mappers manager</param> /// <param name="TypeFrom">Source type</param> /// <param name="TypeTo">Destination type</param> /// <param name="SubMapper"></param> /// <returns></returns> public static MapperForCollectionImpl CreateInstance( string MapperName, EmitMapperManager mapperMannager, Type TypeFrom, Type TypeTo, ObjectsMapperDescr SubMapper, IMappingConfigurator mappingConfigurator ) { TypeBuilder tb = DynamicAssemblyManager.DefineType( "GenericListInv_" + MapperName, typeof(MapperForCollectionImpl) ); if (TypeTo.IsGenericType && TypeTo.GetGenericTypeDefinition() == typeof(List <>)) { MethodBuilder methodBuilder = tb.DefineMethod( "CopyToListInvoke", MethodAttributes.Family | MethodAttributes.Virtual, typeof(object), new Type[] { typeof(IEnumerable) } ); InvokeCopyImpl(TypeTo, "CopyToList").Compile(new CompilationContext(methodBuilder.GetILGenerator())); methodBuilder = tb.DefineMethod( "CopyToListScalarInvoke", MethodAttributes.Family | MethodAttributes.Virtual, typeof(object), new Type[] { typeof(object) } ); InvokeCopyImpl(TypeTo, "CopyToListScalar").Compile( new CompilationContext(methodBuilder.GetILGenerator()) ); } MapperForCollectionImpl result = (MapperForCollectionImpl)Activator.CreateInstance(tb.CreateType()); result.Initialize(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, null); result.subMapper = SubMapper; return(result); }
internal void Initialize( EmitMapperManager MapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator, object[] stroredObjects) { mapperMannager = MapperMannager; typeFrom = TypeFrom; typeTo = TypeTo; _mappingConfigurator = mappingConfigurator; StroredObjects = stroredObjects; if (_mappingConfigurator != null) { _rootOperation = _mappingConfigurator.GetRootMappingOperation(TypeFrom, TypeTo); if (_rootOperation == null) { _rootOperation = new RootMappingOperation(TypeFrom, TypeTo); } var constructor = _rootOperation.TargetConstructor; if (constructor != null) { _targetConstructor = (DelegateInvokerFunc_0)DelegateInvoker.GetDelegateInvoker(constructor); } var valuesPostProcessor = _rootOperation.ValuesPostProcessor; if (valuesPostProcessor != null) { _valuesPostProcessor = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(valuesPostProcessor); } var converter = _rootOperation.Converter; if (converter != null) { _converter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(converter); } var nullSubstitutor = _rootOperation.NullSubstitutor; if (nullSubstitutor != null) { _nullSubstitutor = (DelegateInvokerFunc_0)DelegateInvoker.GetDelegateInvoker(nullSubstitutor); } var sourceFilter = _rootOperation.SourceFilter; if (sourceFilter != null) { _sourceFilter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(sourceFilter); } var destinationFilter = _rootOperation.DestinationFilter; if (destinationFilter != null) { _destinationFilter = (DelegateInvokerFunc_2)DelegateInvoker.GetDelegateInvoker(destinationFilter); } } }