public void UpdateCustomer() { ObjectMapperManager objMan = new ObjectMapperManager(); Guid guid = Guid.NewGuid(); using (var ts = new TransactionScope()) using (var connection = CreateConnection()) { var customer = DBTools.ExecuteReader( connection, "select top 1 * from [dbo].[Customers]", null, r => r.ToObject<Customer>() ); var tracker = new ObjectsChangeTracker(); tracker.RegisterObject(customer); customer.Address = guid.ToString(); DBTools.UpdateObject( connection, customer, "Customers", new[] { "CustomerID" }, tracker, DbSettings.MSSQL ); } }
public void UpdateCustomer() { ObjectMapperManager objMan = new ObjectMapperManager(); Guid guid = Guid.NewGuid(); using (var ts = new TransactionScope()) using (var connection = CreateConnection()) { var customer = DBTools.ExecuteReader( connection, "select top 1 * from [dbo].[Customers]", null, r => r.ToObject <Customer>() ); var tracker = new ObjectsChangeTracker(); tracker.RegisterObject(customer); customer.Address = guid.ToString(); DBTools.UpdateObject( connection, customer, "Customers", new[] { "CustomerID" }, tracker, DbSettings.MSSQL ); } }
public static TPostData GetPostData <TPostData>() where TPostData : class, new() { ObjectsMapper <NameValueCollection, TPostData> mapper = new ObjectMapperManager().GetMapper <NameValueCollection, TPostData>(new FormCollectionMapConfig()); return(mapper.Map(HttpContext.Current.Request.Form)); }
public DataReaderToObjectMapper( string mappingKey, ObjectMapperManager mapperManager, IEnumerable <string> skipFields) : base(GetMapperImpl(mappingKey, mapperManager, skipFields)) { }
protected virtual TDto ToDto(TEntity entity) { //默认的成员对应 var mapper = new ObjectMapperManager().GetMapper <TEntity, TDto>(new DefaultMapConfig()); TDto dto = mapper.Map(entity); return(dto); }
protected virtual TEntity ToEntity(TDto dto) { //默认的成员对应 var mapper = new ObjectMapperManager().GetMapper <TDto, TEntity>(new DefaultMapConfig()); TEntity entity = mapper.Map(dto); return(entity); }
public CustomMapperImpl( ObjectMapperManager mapperMannager, Type TypeFrom, Type TypeTo, IMappingConfigurator mappingConfigurator, object[] storedObjects) { Initialize(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, storedObjects); }
internal void Initialize( ObjectMapperManager 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 void Tt() { _target = new ObjectMapperManager(); var classA = new ClassA {StringValue = "a string", IntValue = 123}; ClassB classB = _target.GetMapper<ClassA, ClassB>().Map(classA); Assert.That(classB.StringValue, Is.EqualTo(classA.StringValue)); Assert.That(classB.IntValue, Is.EqualTo(classA.IntValue)); }
internal Kernel(ContainerOption containerOption, AutoObjectRegistrar autoObjectRegistrar) { Requires.NotNull(containerOption, "containerOption"); Requires.NotNull(autoObjectRegistrar, "autoObjectRegistrar"); _containerOption = containerOption; _autoObjectRegistrar = autoObjectRegistrar; _emitInjectorManager = new EmitInjectorManager(); _componentContainer = new ComponentContainer(); _objectMapperManager = new ObjectMapperManager(); _threadedCommitter = new ThreadedRegistrationCommitter(); _registry = new ObjectBuilderRegistry(this); }
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; }
//protected override MoneyOutDto ToDto(MoneyOut entity) //{ // return null; //} protected override MoneyOut ToEntity(MoneyOutDto dto) { var mapper = new ObjectMapperManager(). GetMapper <MoneyOutDto, MoneyOut>(new DefaultMapConfig().ConvertUsing <MoneyOutDto, MoneyOut>(value => new MoneyOut(value.MoneyOutId) { KindType = value.Id, OutTime = value.OutTime, Quality = value.Quality, Remark = value.Remark, })); MoneyOut entity = mapper.Map(dto); return(entity); }
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( ObjectMapperManager 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; }
protected override SportRecord ToEntity(SportRecordDto dto) { var mapper = new ObjectMapperManager(). GetMapper <SportRecordDto, SportRecord>(new DefaultMapConfig().ConvertUsing <SportRecordDto, SportRecord>(value => new SportRecord(value.Id) { Id = value.Id, ActivityKind = Convert.ToInt16(dto.SportName), ActivityTime = value.ActivityTime, Numbers = value.Numbers, Remark = value.Remark, })); SportRecord entity = mapper.Map(dto); return(entity); }
public MappingBuilder( ObjectMapperManager 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(ObjectMapperManager 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 ); } }
private void Use() { Sourse src = new Sourse { A = 1, B = 0M, C = "2011/9/21 0:00:00", D = new Inner { D2 = Guid.NewGuid() }, E = "test" }; ObjectsMapper <Sourse, Dest> mapper1 = new ObjectMapperManager().GetMapper <Sourse, Dest>( new DefaultMapConfig() //忽略 .IgnoreMembers <Sourse, Dest>(new string[] { "A" }) //为空赋值 .NullSubstitution <decimal?, decimal>((value) => - 1M) //两个实体之间名字不一致,需要映射 .MatchMembers((x, y) => { if (x == "address" && y == "userAddress") { return(true); } return(x == y); }) //有外键关联,需要映射出外键所带名字 .ConvertUsing <Inner, Inner2>(value => new Inner2 { D12 = value.D1, D22 = value.D2 }) //需要对某一个字段进行特殊处理 .PostProcess <Dest>((value, state) => { value.F = "nothing"; return(value); }) ); Dest dst = mapper1.Map(src); }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="keyProvider">Required. A function to return the value of the entity's primary key.</param> /// <param name="keyBinder">The binder of the entity's id.</param> /// <param name="items">Required. The list of entities to pre-populate the current instance with.</param> /// <param name="mapper">Object mapper manager instance</param> public InMemoryRepository( IKeyProvider <TEntity, TKey> keyProvider, IKeyBinder <TEntity, TKey> keyBinder, IEnumerable <TEntity> items, ObjectMapperManager mapper) { Guard.ArgumentNotNull(keyProvider, nameof(keyProvider)); Guard.ArgumentNotNull(keyBinder, nameof(keyBinder)); Guard.ArgumentNotNull(items, nameof(items)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _keyProvider = keyProvider; _keyBinder = keyBinder; _mapper = mapper; _items = new ConcurrentDictionary <TKey, TEntity>( items.Select(i => new KeyValuePair <TKey, TEntity>(_keyBinder.Get(i), i))); }
/// <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, ObjectMapperManager 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.CreateTypeInfo().AsType()); result.Initialize(mapperMannager, TypeFrom, TypeTo, mappingConfigurator, null); result.subMapper = SubMapper; return(result); }
private static ObjectsMapperBaseImpl GetMapperImpl( string mappingKey, ObjectMapperManager mapperManager, IEnumerable <string> skipFields) { IMappingConfigurator config = new DbReaderMappingConfig(skipFields, mappingKey); if (mapperManager != null) { return(mapperManager.GetMapperImpl( typeof(DbDataReader), typeof(T), config)); } return(ObjectMapperManager.DefaultInstance.GetMapperImpl( typeof(DbDataReader), typeof(T), config)); }
public void MapperMethod() { AutoMapperInit(); StudentDo xiaoming = new StudentDo() { StudentName = "小明", Age = 10 }; SchoolDo xiaoxue = new SchoolDo() { SchoolName = "义津小学", Address = "安徽安庆枞阳" }; ClassDo banji_01 = new ClassDo() { ClassName = "401班", ClassLevel = 1, StudentNum = 50 }; xiaoxue.ClassInfo = banji_01; SchoolDo zhongxue = new SchoolDo() { SchoolName = "义津中学", Address = "安徽安庆枞阳" }; ClassDo banji_02 = new ClassDo() { ClassName = "501班", ClassLevel = 2, StudentNum = 50 }; zhongxue.ClassInfo = banji_02; xiaoming.SmallSchool = xiaoxue; xiaoming.MiddleSchool = zhongxue; Stopwatch watcher = new Stopwatch(); watcher.Start(); for (var i = 0; i < 100000; i++) { var xiaohong = AutoMapper.Mapper.Map<StudentDo, StudentDto>(xiaoming); } watcher.Stop(); long time1 = watcher.ElapsedMilliseconds; Console.WriteLine("共花费{0}毫秒", time1); watcher.Reset(); watcher.Restart(); ObjectsMapper<StudentDo, StudentDto> mapper = new ObjectMapperManager().GetMapper<StudentDo, StudentDto>(new DefaultMapConfig()); StudentDto xiaofang = null; for (var i = 0; i < 1000000; i++) { xiaofang = mapper.Map(xiaoming); } long time2 = watcher.ElapsedMilliseconds; Console.WriteLine("共花费{0}毫秒", time2); System.Threading.Thread.Sleep(5000); Console.ReadLine(); }
public void UpdateCustomer() { ObjectMapperManager objMan = new ObjectMapperManager(); Guid guid = Guid.NewGuid(); // todo: there is a bug , In the callstack of DBTools and DataReaderToObjectMapper ocur two times Reader.Read(); so.. using (var ts = new TransactionScope()) using (var connection = CreateConnection()) { var customer = DBTools.ExecuteReader( connection, "select * from Customers limit 1 ", null, r => r.ToObject <Customer>() ); Assert.IsNotNull(customer); var tracker = new ObjectsChangeTracker(); tracker.RegisterObject(customer); customer.Address = guid.ToString(); var result = DBTools.UpdateObject( connection, customer, "Customers", new[] { "CustomerID" }, tracker, DbSettings.MSSQL ); Assert.IsTrue(result.Result == 1); } }
/// <summary> /// Initializes a new instance of the <see cref="ObjectsChangeTracker"/> class. /// </summary> /// <param name="mapManager">The map manager.</param> public ObjectsChangeTracker(ObjectMapperManager mapManager) { this._mapManager = mapManager; }
static Mapper() { _engine = new MappingEngine(); _emitMapper = ObjectMapperManager.DefaultInstance; _instance = new Mapper(); }
public void MapperMethod() { AutoMapperInit(); StudentDo xiaoming = new StudentDo() { StudentName = "小明", Age = 10 }; SchoolDo xiaoxue = new SchoolDo() { SchoolName = "义津小学", Address = "安徽安庆枞阳" }; ClassDo banji_01 = new ClassDo() { ClassName = "401班", ClassLevel = 1, StudentNum = 50 }; xiaoxue.ClassInfo = banji_01; SchoolDo zhongxue = new SchoolDo() { SchoolName = "义津中学", Address = "安徽安庆枞阳" }; ClassDo banji_02 = new ClassDo() { ClassName = "501班", ClassLevel = 2, StudentNum = 50 }; zhongxue.ClassInfo = banji_02; xiaoming.SmallSchool = xiaoxue; xiaoming.MiddleSchool = zhongxue; Stopwatch watcher = new Stopwatch(); watcher.Start(); for (var i = 0; i < 100000; i++) { var xiaohong = AutoMapper.Mapper.Map <StudentDo, StudentDto>(xiaoming); } watcher.Stop(); long time1 = watcher.ElapsedMilliseconds; Console.WriteLine("共花费{0}毫秒", time1); watcher.Reset(); watcher.Restart(); ObjectsMapper <StudentDo, StudentDto> mapper = new ObjectMapperManager().GetMapper <StudentDo, StudentDto>(new DefaultMapConfig()); StudentDto xiaofang = null; for (var i = 0; i < 1000000; i++) { xiaofang = mapper.Map(xiaoming); } long time2 = watcher.ElapsedMilliseconds; Console.WriteLine("共花费{0}毫秒", time2); System.Threading.Thread.Sleep(5000); Console.ReadLine(); }
public ObjectsChangeTracker() { _mapManager = ObjectMapperManager.DefaultInstance; }
public OOMapper() { _mapper = ObjectMapperManager.DefaultInstance; }
public MapperModule() { OwnDefaultMapConfigs = OwnDefaultMapConfig(); OMM = new ObjectMapperManager(); }
public DataReaderToObjectMapper(ObjectMapperManager mapperManager) : this(null, mapperManager, null) { }
public ObjectsChangeTracker(ObjectMapperManager MapManager) { _mapManager = MapManager; }
public EmitMapperAdapter() { this.manager = new EmitMapper.ObjectMapperManager(); }
public void Initialize( ObjectMapperManager 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); } } }