2014-10-20 19 views
18

Sto utilizzando la mappatura automatica per la prima volta.Come configurare Auto mapper nel progetto della libreria di classi?

Sto lavorando all'applicazione C# e voglio utilizzare l'auto mapper.

(voglio solo sapere come usarlo, quindi non hanno asp.net app né app MVC.)

Ho tre progetti libreria di classi.

enter image description here

voglio scrivere processo di trasferimento nel progetto di servizio.

Quindi voglio sapere come e dove devo configurare Auto Mapper?

risposta

20

È possibile inserire la configurazione ovunque:

public class AutoMapperConfiguration 
{ 
    public static void Configure() 
    { 
     Mapper.Initialize(x => 
      { 
       x.AddProfile<MyMappings>();    
      }); 
    } 
} 

public class MyMappings : Profile 
{ 
    public override string ProfileName 
    { 
     get { return "MyMappings"; } 
    } 

    protected override void Configure() 
    { 
    ...... 
    } 

ma deve essere chiamato con l'applicazione utilizzando le librerie ad un certo punto:

void Application_Start() 
    {    
     AutoMapperConfiguration.Configure(); 
    } 
0

vi consiglio di utilizzare il instance based approach using an IMapper:

var config = new MapperConfiguration(cfg => { 
    cfg.AddProfile<AppProfile>(); 
    cfg.CreateMap<Source, Dest>(); 
}); 

IMapper mapper = config.CreateMapper(); 
// or 
IMapper mapper = new Mapper(config); 
var dest = mapper.Map<Source, Dest>(new Source()); 

In questo modo nessuno all'esterno della libreria deve chiamare alcuna configurazione metodo di razione. È possibile definire un MapperConfiguration e creare il mapper da lì tutto all'interno della libreria di classi.