Browse Source

Undo remove `IMapperAccessor`.

pull/14778/head
maliming 3 years ago
parent
commit
7bc4f26326
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 6
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
  2. 25
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperAutoObjectMappingProvider.cs
  3. 8
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/IMapperAccessor.cs
  4. 8
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/MapperAccessor.cs
  5. 2
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/ObjectMapping/AbpAutoMapperObjectMapperExtensions.cs

6
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs

@ -52,5 +52,11 @@ public class AbpAutoMapperModule : AbpModule
});
context.Services.AddTransient<IMapper>(sp => sp.GetRequiredService<IConfigurationProvider>().CreateMapper(sp.GetService));
context.Services.AddTransient<MapperAccessor>(sp => new MapperAccessor()
{
Mapper = sp.GetRequiredService<IMapper>()
});
context.Services.AddTransient<IMapperAccessor>(provider => provider.GetRequiredService<MapperAccessor>());
}
}

25
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperAutoObjectMappingProvider.cs

@ -1,37 +1,30 @@
using System;
using AutoMapper;
using Volo.Abp.ObjectMapping;
using Volo.Abp.ObjectMapping;
namespace Volo.Abp.AutoMapper;
public class AutoMapperAutoObjectMappingProvider<TContext> : AutoMapperAutoObjectMappingProvider, IAutoObjectMappingProvider<TContext>
{
public AutoMapperAutoObjectMappingProvider(IMapper mapper)
: base(mapper)
public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor)
: base(mapperAccessor)
{
}
}
public class AutoMapperAutoObjectMappingProvider : IAutoObjectMappingProvider, IDisposable
public class AutoMapperAutoObjectMappingProvider : IAutoObjectMappingProvider
{
public IMapper Mapper { get; }
public IMapperAccessor MapperAccessor { get; }
public AutoMapperAutoObjectMappingProvider(IMapper mapper)
public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor)
{
Mapper = mapper;
MapperAccessor = mapperAccessor;
}
public virtual TDestination Map<TSource, TDestination>(object source)
{
return Mapper.Map<TDestination>(source);
return MapperAccessor.Mapper.Map<TDestination>(source);
}
public virtual TDestination Map<TSource, TDestination>(TSource source, TDestination destination)
{
return Mapper.Map(source, destination);
}
public void Dispose()
{
return MapperAccessor.Mapper.Map(source, destination);
}
}

8
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/IMapperAccessor.cs

@ -0,0 +1,8 @@
using AutoMapper;
namespace Volo.Abp.AutoMapper;
public interface IMapperAccessor
{
IMapper Mapper { get; }
}

8
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/MapperAccessor.cs

@ -0,0 +1,8 @@
using AutoMapper;
namespace Volo.Abp.AutoMapper;
internal class MapperAccessor : IMapperAccessor
{
public IMapper Mapper { get; set; }
}

2
framework/src/Volo.Abp.AutoMapper/Volo/Abp/ObjectMapping/AbpAutoMapperObjectMapperExtensions.cs

@ -14,7 +14,7 @@ public static class AbpAutoMapperObjectMapperExtensions
{
if (autoObjectMappingProvider is AutoMapperAutoObjectMappingProvider autoMapperAutoObjectMappingProvider)
{
return autoMapperAutoObjectMappingProvider.Mapper;
return autoMapperAutoObjectMappingProvider.MapperAccessor.Mapper;
}
throw new AbpException($"Given object is not an instance of {typeof(AutoMapperAutoObjectMappingProvider).AssemblyQualifiedName}. The type of the given object it {autoObjectMappingProvider.GetType().AssemblyQualifiedName}");

Loading…
Cancel
Save