Skip to content

Commit d17b6b4

Browse files
committed
MapFrom should override ignore
1 parent e7ba023 commit d17b6b4

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

src/AutoMapper/MemberMap.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public void MapFrom(string sourceMembersPath, MemberInfo[] members)
4343
var sourceMembers = sourceType.ContainsGenericParameters ? members :
4444
members[0].DeclaringType.ContainsGenericParameters ? ReflectionHelper.GetMemberPath(sourceType, sourceMembersPath, TypeMap) : members;
4545
Resolver = new MemberPathResolver(sourceMembers);
46+
Ignored = false;
4647
}
4748
public override string ToString() => DestinationName;
4849
public Expression ChainSourceMembers(Expression source) => SourceMembers.Chain(source);
Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,45 @@
11
namespace AutoMapper.UnitTests.Bug;
2-
3-
public class OverrideIgnore
2+
public class OverrideIgnoreMapFromString
43
{
54
public class DomainBase
65
{
76
public string SomeProperty { get; set; }
87
}
9-
108
public class DtoBase
119
{
1210
public string SomeDifferentProperty { get; set; }
1311
}
14-
1512
[Fact]
1613
public void specifying_map_should_override_ignore()
1714
{
1815
var config = new MapperConfiguration(cfg => cfg.CreateMap<DomainBase, DtoBase>()
1916
.ForMember(m=>m.SomeDifferentProperty, m=>m.Ignore())
20-
.ForMember(m=>m.SomeDifferentProperty, m=>m.MapFrom(s=>s.SomeProperty)));
17+
.ForMember(m=>m.SomeDifferentProperty, m=>m.MapFrom("SomeProperty")));
2118

2219
var dto = config.CreateMapper().Map<DomainBase, DtoBase>(new DomainBase {SomeProperty = "Test"});
2320

24-
"Test".ShouldBe(dto.SomeDifferentProperty);
21+
dto.SomeDifferentProperty.ShouldBe("Test");
22+
}
23+
}
24+
public class OverrideIgnore
25+
{
26+
public class DomainBase
27+
{
28+
public string SomeProperty { get; set; }
29+
}
30+
public class DtoBase
31+
{
32+
public string SomeDifferentProperty { get; set; }
2533
}
26-
2734
[Fact]
28-
public void specifying_map_should_override_ignore_with_one_parameter()
35+
public void specifying_map_should_override_ignore()
2936
{
3037
var config = new MapperConfiguration(cfg => cfg.CreateMap<DomainBase, DtoBase>()
31-
.ForMember(m => m.SomeDifferentProperty, m => m.Ignore())
32-
.ForMember(m => m.SomeDifferentProperty, m => m.MapFrom(s => s.SomeProperty)));
38+
.ForMember(m=>m.SomeDifferentProperty, m=>m.Ignore())
39+
.ForMember(m=>m.SomeDifferentProperty, m=>m.MapFrom(s=>s.SomeProperty)));
3340

34-
var dto = config.CreateMapper().Map<DtoBase>(new DomainBase { SomeProperty = "Test" });
41+
var dto = config.CreateMapper().Map<DomainBase, DtoBase>(new DomainBase {SomeProperty = "Test"});
3542

36-
"Test".ShouldBe(dto.SomeDifferentProperty);
43+
dto.SomeDifferentProperty.ShouldBe("Test");
3744
}
38-
}
45+
}

0 commit comments

Comments
 (0)