2013-04-11 111 views
0

我想知道是否有可能在ForMemeber中“映射”映射对象。我有一个映射类a到b配置。然后我有两个我需要映射c和d的新类,但是结构不同,所以我必须使用ForMember来映射它们之间的配置映射。但是c和d都有一些属性,其中用户在源和目标中都有类。有没有办法说,使用已经配置的映射为c和d中的属性的内部a到b映射?用户映射器在自动映射器中的ForMember

回答

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; } 
} 

而且要在课堂cd性能,而无需重新定义ab映射映射?

如果是这样,你会默认。像这样的东西应该这样做:

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(); 
    } 
} 

如果你的意思是别的,请更新你的问题来澄清。

+0

谢谢。这就是我的意思。 – Gaotter 2013-04-12 06:52:43