mirror of https://github.com/abpframework/abp.git
Browse Source
Resolve #14766 Register `IMapper` as transient, `MapperConfiguration` as `singleton`.pull/14778/head
8 changed files with 55 additions and 66 deletions
@ -1,31 +1,37 @@ |
|||||
using Volo.Abp.ObjectMapping; |
using System; |
||||
|
using AutoMapper; |
||||
|
using Volo.Abp.ObjectMapping; |
||||
|
|
||||
namespace Volo.Abp.AutoMapper; |
namespace Volo.Abp.AutoMapper; |
||||
|
|
||||
public class AutoMapperAutoObjectMappingProvider<TContext> : AutoMapperAutoObjectMappingProvider, IAutoObjectMappingProvider<TContext> |
public class AutoMapperAutoObjectMappingProvider<TContext> : AutoMapperAutoObjectMappingProvider, IAutoObjectMappingProvider<TContext> |
||||
{ |
{ |
||||
public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor) |
public AutoMapperAutoObjectMappingProvider(IMapper mapper) |
||||
: base(mapperAccessor) |
: base(mapper) |
||||
{ |
{ |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
public class AutoMapperAutoObjectMappingProvider : IAutoObjectMappingProvider |
public class AutoMapperAutoObjectMappingProvider : IAutoObjectMappingProvider, IDisposable |
||||
{ |
{ |
||||
public IMapperAccessor MapperAccessor { get; } |
public IMapper Mapper { get; } |
||||
|
|
||||
public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor) |
public AutoMapperAutoObjectMappingProvider(IMapper mapper) |
||||
{ |
{ |
||||
MapperAccessor = mapperAccessor; |
Mapper = mapper; |
||||
} |
} |
||||
|
|
||||
public virtual TDestination Map<TSource, TDestination>(object source) |
public virtual TDestination Map<TSource, TDestination>(object source) |
||||
{ |
{ |
||||
return MapperAccessor.Mapper.Map<TDestination>(source); |
return Mapper.Map<TDestination>(source); |
||||
} |
} |
||||
|
|
||||
public virtual TDestination Map<TSource, TDestination>(TSource source, TDestination destination) |
public virtual TDestination Map<TSource, TDestination>(TSource source, TDestination destination) |
||||
{ |
{ |
||||
return MapperAccessor.Mapper.Map(source, destination); |
return Mapper.Map(source, destination); |
||||
|
} |
||||
|
|
||||
|
public void Dispose() |
||||
|
{ |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,8 +0,0 @@ |
|||||
using AutoMapper; |
|
||||
|
|
||||
namespace Volo.Abp.AutoMapper; |
|
||||
|
|
||||
public interface IMapperAccessor |
|
||||
{ |
|
||||
IMapper Mapper { get; } |
|
||||
} |
|
||||
@ -1,8 +0,0 @@ |
|||||
using AutoMapper; |
|
||||
|
|
||||
namespace Volo.Abp.AutoMapper; |
|
||||
|
|
||||
internal class MapperAccessor : IMapperAccessor |
|
||||
{ |
|
||||
public IMapper Mapper { get; set; } |
|
||||
} |
|
||||
Loading…
Reference in new issue