我想知道是否可以在 ForMemeber 中“子映射”映射对象。我配置了 a 类到 b 类的映射。然后我有两个新的类我需要映射 c 和 d,但是结构不同所以我必须使用 ForMember 来映射它们之间的配置映射。但是 c 和 d 都具有在源中用户 a 和在目标中用户 b 的类的属性。有没有办法说为 c 和 d 中的属性使用内部 a 到 b 映射的已配置映射?
问问题
1811 次
1 回答
1
如果我理解这一点,你有类似的东西
public class a
{
public int Foo { get; set; }
}
public class b
{
public int Bar { get; set; }
}
public class c
{
public a Baz { get; set; }
}
public class d
{
public b Qux { get; set; }
}
并且您希望对类中的属性c
进行d
映射,而不必重新定义a
and的映射b
?
如果是这样,则默认情况下您会得到它。这样的事情应该这样做:
public static class AutoMapperConfigurator
{
public static void Configure()
{
AutoMapper.Mapper.CreateMap<a, b>()
.ForMember(dest => dest.Bar, opt => opt.MapFrom(src => src.Foo));
AutoMapper.Mapper.CreateMap<c, d>()
.ForMember(dest => dest.Qux, opt => opt.MapFrom(src => src.Baz));
AutoMapper.Mapper.AssertConfigurationIsValid();
}
}
如果您的意思是别的,请更新您的问题以澄清。
于 2013-04-12T00:33:47.103 回答