Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ To use, configure using the configuration helper method:
var mapper = new Mapper(new MapperConfiguration(cfg => {
cfg.AddExpressionMapping();
// Rest of your configuration
}));
}, loggerFactory));

// or if using the MS Ext DI:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<Summary>Expression mapping (OData) extensions for AutoMapper</Summary>
<Description>Expression mapping (OData) extensions for AutoMapper</Description>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<AssemblyOriginatorKeyFile>..\..\AutoMapper.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>
Expand All @@ -29,7 +29,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AutoMapper" Version="[14.0.0,15.0.0)" />
<PackageReference Include="AutoMapper" Version="[15.0.0,16.0.0)" />
<PackageReference Include="MinVer" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
18 changes: 18 additions & 0 deletions src/AutoMapper.Extensions.ExpressionMapping/ConfigurationHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using Microsoft.Extensions.Logging.Abstractions;
using System;

namespace AutoMapper.Extensions.ExpressionMapping
{
public static class ConfigurationHelper
{
public static MapperConfiguration GetMapperConfiguration(Action<IMapperConfigurationExpression> configure)
{
return new MapperConfiguration(configure, new NullLoggerFactory());
}

public static MapperConfiguration GetMapperConfiguration(MapperConfigurationExpression configurationExpression)
{
return new MapperConfiguration(configurationExpression, new NullLoggerFactory());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ public Expression MapExpression(IGlobalConfiguration configurationProvider, Prof
Constant(configurationProvider)
);

public TypePair? GetAssociatedTypes(TypePair initialTypes)
{
return null;
}

internal class MappingVisitor : ExpressionVisitor
{
private IList<Type> _destSubTypes = new Type[0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ private void ConfigureAnonymousTypeMaps(Type oldType, Type newAnonymousType)
}
});

anonymousTypesConfigurationProvider = new MapperConfiguration(anonymousTypesBaseMappings);
anonymousTypesConfigurationProvider = ConfigurationHelper.GetMapperConfiguration(anonymousTypesBaseMappings);
}

private MemberInitExpression GetAnonymousTypeMemberInitExpression(Dictionary<string, Expression> bindingExpressions, Type oldType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class CanMapExpressionWithListConstants
public void Map_expression_with_constant_array()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down Expand Up @@ -43,7 +43,7 @@ public void Map_expression_with_constant_array()
public void Map_expression_with_constant_list_using_generic_list_dot_contains()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down Expand Up @@ -73,7 +73,7 @@ public void Map_expression_with_constant_list_using_generic_list_dot_contains()
public void Map_expression_with_constant_list_using_generic_enumerable_dot_contains()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down Expand Up @@ -103,7 +103,7 @@ public void Map_expression_with_constant_list_using_generic_enumerable_dot_conta
public void Map_expression_with_constant_dictionary()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down Expand Up @@ -133,7 +133,7 @@ public void Map_expression_with_constant_dictionary()
public void Map_expression_with_constant_dictionary_mapping_both_Key_and_value()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class CanMapExpressionWithLocalExpressionConstant
public void Map_expression_wchich_includes_local_constant()
{
//Arrange
var config = new MapperConfiguration
var config = ConfigurationHelper.GetMapperConfiguration
(
cfg =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class CanMapMemberFromTypeBinaryExpression
public void Can_map_using_type_binary_expression_to_test_the_parameter_expression()
{
//arrange
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand Down Expand Up @@ -41,7 +41,7 @@ public void Can_map_using_type_binary_expression_to_test_the_parameter_expressio
public void Can_map_using_type_binary_expression_to_test_a_member_expression()
{
//arrange
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand Down Expand Up @@ -77,7 +77,7 @@ public void Can_map_using_type_binary_expression_to_test_a_member_expression()
public void Can_map_using_instance_method_call_to_test_the_parameter_expression()
{
//arrange
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand All @@ -101,7 +101,7 @@ public void Can_map_using_instance_method_call_to_test_the_parameter_expression(
public void Can_map_using_static_method_call_to_test_the_parameter_expression()
{
//arrange
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand Down Expand Up @@ -129,7 +129,7 @@ public void Can_map_using_static_method_call_to_test_the_parameter_expression()
public void Can_map_using_static_generic_method_call_to_test_the_parameter_expression()
{
//arrange
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ public void CanMapNullableSelectorToNonNullableelectorWithoutCustomExpression(st

private static IMapper GetModelToDataMapper()
{
var config = new MapperConfiguration(c =>
var config = ConfigurationHelper.GetMapperConfiguration(c =>
{
c.CreateMap<ProductModel, Product>();
});
Expand All @@ -208,7 +208,7 @@ private static IMapper GetModelToDataMapper()

private static IMapper GetDataToModelMapper()
{
var config = new MapperConfiguration(c =>
var config = ConfigurationHelper.GetMapperConfiguration(c =>
{
c.CreateMap<Product, ProductModel>();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class CanMapParameterBodyFromChildReferenceWithoutMemberExpression
public void Can_map_parameter_body_from_child_reference_without_member_expression()
{
// Arrange
var config = new MapperConfiguration(c =>
var config = ConfigurationHelper.GetMapperConfiguration(c =>
{
c.CreateMap<TestCategory, TestProductDTO>()
.ForMember(p => p.Brand, c => c.MapFrom(p => EF.Property<int>(p, "BrandId"))); ;
Expand Down Expand Up @@ -42,7 +42,7 @@ public class TestCategory
}
public class TestProduct
{
public TestCategory? Category { get; set; }
public TestCategory Category { get; set; }
}

public class TestProductDTO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class CanMapParameterBodyWithoutMemberExpression
public void Can_map_parameter_body_without_member_expression()
{
// Arrange
var config = new MapperConfiguration(c =>
var config = ConfigurationHelper.GetMapperConfiguration(c =>
{
c.CreateMap<TestProduct, TestProductDTO>()
.ForMember(p => p.Brand, c => c.MapFrom(p => EF.Property<int>(p, "BrandId")));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class EnumerableDotContainsWorksOnLocalVariables
[Fact]
public void Issue87()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class GrandChildDest

}

protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
{

cfg.CreateMap<Source, Dest>()
Expand Down Expand Up @@ -145,7 +145,7 @@ public class GrandChildDest

}

protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Dest>()
.ForMember(m => m.Child1, opt => opt.ExplicitExpansion())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public class DestWithEnum : Dest
[Fact]
public void Can_map_unary_expression_converting_enum_to_int()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<SourceEnum, DestEnum>();
Expand All @@ -77,7 +77,7 @@ public void Can_map_unary_expression_converting_enum_to_int()
[Fact]
public void Can_map_single_properties()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<Source, Dest>();
Expand All @@ -100,7 +100,7 @@ public void Can_map_single_properties()
[Fact]
public void Can_map_flattened_properties()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<Source, Dest>();
Expand All @@ -123,7 +123,7 @@ public void Can_map_flattened_properties()
[Fact]
public void Can_map_custom_mapped_properties()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<Source, Dest>().ForMember(d => d.Bar, opt => opt.MapFrom(src => src.Foo));
Expand All @@ -146,7 +146,7 @@ public void Can_map_custom_mapped_properties()
[Fact]
public void Throw_AutoMapperMappingException_if_expression_types_dont_match()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<Source, Dest>();
Expand All @@ -160,7 +160,7 @@ public void Throw_AutoMapperMappingException_if_expression_types_dont_match()
[Fact]
public void Can_map_with_different_destination_types()
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<Source, Dest>().ForMember(d => d.Bar, opt => opt.MapFrom(src => src.Foo));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class DestExpressionHolder
public Expression<Func<ExpressionMapping.Parent, bool>> Expression { get; set; }
}

protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<SourceExpressionHolder, DestExpressionHolder>().ReverseMap();
Expand Down Expand Up @@ -109,7 +109,7 @@ public Parent Parent
private Expression<Func<ParentDTO, bool>> _predicateExpression;
private Parent _valid;

protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.CreateMap<GrandParent, GrandParentDTO>().ReverseMap();
Expand Down Expand Up @@ -319,7 +319,7 @@ public class TestModel
public string Code { get; set; }
}

protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(config => config.CreateMap<TestModel, TestData>());
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(config => config.CreateMap<TestModel, TestData>());

public void Should_map_with_closures()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ protected override MapperConfiguration Configuration
{
get
{
return new MapperConfiguration(config =>
return ConfigurationHelper.GetMapperConfiguration(config =>
{
config.AddExpressionMapping();
config.CreateMap<Entity<byte>, EntityDto<SimpleEnumByte>>()
Expand Down Expand Up @@ -169,7 +169,6 @@ protected override MapperConfiguration Configuration
[InlineData(SimpleEnumUInt.Value3, 1U)]
[InlineData(SimpleEnumLong.Value3, 1L)]
[InlineData(SimpleEnumULong.Value3, 1UL)]
[InlineData(SimpleEnumSByte.Value3, (sbyte)3)]
[InlineData(SimpleEnumByte.Value3, (byte)3)]
[InlineData(SimpleEnumShort.Value3, (short)3)]
[InlineData(SimpleEnumUShort.Value3, (ushort)3)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ protected override MapperConfiguration Configuration
{
get
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
// issue #1886
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ protected override MapperConfiguration Configuration
{
get
{
var config = new MapperConfiguration(cfg =>
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.AddExpressionMapping();
cfg.AddProfile(typeof(DerivedTypeProfile));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public void Should_Map_From_Generic_Type()

private static IMapper CreateMapper()
{
var mapperConfig = new MapperConfiguration(cfg =>
var mapperConfig = ConfigurationHelper.GetMapperConfiguration(cfg =>
{
cfg.CreateMap<Model, DTO>()
.ForMember(d => d.Nested, opt => opt.MapFrom(s => s));
Expand Down
Loading