2014-10-20 2 views
18

Я использую автоматическое отображение в первый раз.Как настроить Auto mapper в проекте библиотеки классов?

Я работаю над приложением C#, и я хочу использовать auto mapper.

(я просто хочу знать, как использовать его, так что я не asp.net приложение ни MVC приложение.)

У меня есть три библиотеки классов проектов.

enter image description here

Я хочу написать процесс передачи в проекте службы.

Итак, я хочу знать, как и где следует настраивать Auto Mapper?

ответ

20

Вы можете разместить конфигурацию в любом месте:

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() 
    { 
    ...... 
    } 

Но он должен быть вызван приложением с использованием библиотек в какой-то момент:

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

Я рекомендую вам использовать 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()); 

Таким образом, никто за пределами вашей библиотеки не должен звонить в любую конфигурацию рацион. Вы можете определить MapperConfiguration и создать картупер оттуда внутри библиотеки классов.

Смежные вопросы